Colors

在 rxvt-unicode 中定義顏色程式碼

  • May 15, 2016

在我的終端中使用一些node.js工具,我在彩色輸出方面遇到了一些問題。如您在此處看到的,一些使用顏色程式碼 90 的文本將在終端中消失。mocha``urxvt

tput colors輸出為:256

並使用此命令:

(x=`tput op` y=`printf %76s`;for i in {0..256};do o=00$i;echo -e ${o:${#o}-3:3} `tput setaf $i;tput setab $i`${y// /=}(x=`tput op` y=`printf %76s`;for i in {0..256};do o=00$i;echo -e ${o:${#o}-3:3} `tput setaf $i;tput setab $i`${y// /=}$x;done)$x;done)

看來我有所有可用的顏色。

但是當我嘗試回應這樣的事情時:

echo '\e[0;90m shahin \e[m '

將列印一個空行!無論如何手動定義這個顏色程式碼?

謝謝你們!

更新:我認為一些圖片會更好地描述這種情況。這是finalterm終端中 echo 命令的圖像:

在此處輸入圖像描述

在這裡我把結果從urxvt

在此處輸入圖像描述

這是在同一台上執行的此 perl腳本的結果urxvt

在此處輸入圖像描述

問題不在於顏色不可見,

它與終端背景相同,例如深灰色。

有一種顏色基本上是透明的,在下面顯示終端預設顏色。但是,這種顏色並沒有被使用——可能只是用於背景的“黑色”顏色實際上與您用於前景的深灰色相同。

如果可能,打開一個終端,允許使用 gui 輕鬆嘗試顏色設置,例如konsolegnome-terminal,並清楚地顯示您可以更改的內容。或者只是嘗試rxvt-unicode是否合適。

我想你至少會知道出了什麼問題,如果不是解決方案的話。

如果還沒有解決,請在此處提供您的新資訊,然後讓我們處理詳細資訊。


邊注:

我沒有讓你的長命令通過複製和粘貼來工作,但它可能類似於

colortest-256

colortest來自Ubuntu 等的軟體包。

也試試colortest-16吧,它可能有助於解釋你的問題。

如果沒有,請發布螢幕截圖!

您使用了錯誤的轉義序列。

它很接近(以 開頭escape``[,以 結尾m),但參數錯誤。

至少有三個 SGR(選擇圖形再現)轉義序列用於在 xterm 和類似終端中列印顏色:

  • ANSI(顏色 0-7),使用參數 30-37(前景)和 40-47(背景)
  • aixterm(顏色 8-15),使用參數 90-97(前景)和 100-107(背景)
  • 256colors(顏色0-255),使用codes38;5;參數(前景)和48;5;參數(背景)

因此,您選擇了 aixterm 前景色 8。按照慣例,它們顯示為顏色 0-7 的更亮版本。ANSI 顏色 0 為黑色。亮黑色是……取決於終端,它可能是灰色的。它可能只是黑色。

也許你的意思是這樣的:

echo '\e[0;38;5;90m shahin \e[m '

雖然這是攜帶式的:

printf '\033[0;38;5;90m shahin \033[m \n'

進一步閱讀:

引用自:https://unix.stackexchange.com/questions/149749