簡體   English   中英

一些終端顏色未在emacs中顯示

[英]Some terminal colors don't show in emacs

我在python中有一個名為blue的函數,該函數將帶有ansi代碼的字符串包裝成藍色。 當我在普通終端中的python解釋器中運行以下命令時:

>>> blue('hello')
'\x1b[94mhello\x1b[0m'
>>> print blue('hello')
hello

正如您所料,第二個hello是藍色。

但是,如果我在emacs中運行的python解釋器中運行相同的命令,則不會使用該顏色(這就是默認顏色一樣)。 但這並不是emacs僅僅忽略所有顏色指令的情況,因為例如我的zsh終端, ls等的顏色確實會顯示出來。 emacs是否遵循一組不同的轉義代碼? 為什么emacs不能為我的文本着色?

我認為這是特定顏色代碼的問題,終端沒有足夠的顏色(正如此處所說的那樣,您只能得到8種顏色)。

事實上,

def blue(s):
     return "\x1b[34m" + s + "\x1b[0m"

在emacs 24.3.1的終端中為我工作。

僅供參考,這與ls使用相同的顏色代碼(從此處給出列表)。 實際上, \\x1b[01;34m代表粗體藍色也可以。

在上面的鏈接中測試腳本會產生以下結果:

以下文本顏色代碼有效:

\x1b[30m | black
\x1b[31m | red
\x1b[32m | green
\x1b[33m | yellow
\x1b[34m | blue
\x1b[35m | magenta
\x1b[36m | cyan
\x1b[37m | white

還支持相應的背景色:

\x1b[40m | black
\x1b[41m | red
\x1b[42m | green
\x1b[43m | yellow
\x1b[44m | blue
\x1b[45m | magenta
\x1b[46m | cyan
\x1b[47m | white

最重要的是,以下格式代碼也適用:

\x1b[01m | bold
\x1b[04m | underline
\x1b[07m | inverted

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM