2017-05-31 21 views
0

當我在X中使用Emacs時,它具有數百萬種顏色。當我將SSH連接到運行Ubuntu 16.04的Amazon EC2實例時,它只有8種顏色。在ssh會話中,emacs光標顏色始終與文本的顏色點

問題是遊標始終與點上的文本顏色相同。如果我從白色文本移動到黑色文本,光標會從白色變爲黑色。當我評估(set-cursor-color「blue」)時,沒有任何反應。我可以改變背景顏色,但不能改變光標顏色。

我自己的機器運行Kubuntu 16.04 - 也就是Ubuntu 16.04加上KDE。我用來SSH的終端應用叫做Konsole。

+0

假設的Konsole *可以*支持的顏色還不止這些,你可能你的'TERM'環境變量設置爲更好的東西。我不知道Konsole是否兼容,但是一些終端與'export TERM = xterm-256color'搭配很好,所以你可以嘗試一下。我建議調查是否有更適合Konsole的東西。 – phils

+0

如果已經有可用的顏色,這應該如何?我可以改變背景顏色,例如(set-background-color「blue」) - 只是不是光標顏色。 (而在X中使用Emacs我可以同時做到這一點。) –

+0

對不起,我沒有給予足夠的關注!我會添加一個答案。 – phils

回答

1

終端中的光標顏色不在Emacs的控制範圍內(光標面僅用於X顯示屏),但根據終端的不同,可能會發送一些轉義序列來操縱它。我不使用Konsole,所以YMMV,但下面的工作在默認的Ubuntu終端。如果它不適合你,請檢查Konsole文檔,看看你是否可以適應它。

(defun my-terminal-cursor-color (color) 
    "Sets the terminal cursor colour by sending the appropriate escape sequence." 
    (interactive 
    (list (read-color "Color (white): " nil :allow-empty))) 
    (when (string= color "") 
    (setq color "white")) 
    (send-string-to-terminal 
    (concat "\033]12;" color "\007"))) 
+0

啊哈!這很有幫助,謝謝。我希望能夠在任何平臺上從任何終端改變光標顏色。這聽起來像在狀態欄中顯示消息將更容易。 (指示用戶是處於移動子模式還是編輯子模式。) –