[英]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.