在 rxvt-unicode 中定義顏色程式碼
在我的終端中使用一些
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 輕鬆嘗試顏色設置,例如
konsole
或gnome-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),使用codes
38;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'
進一步閱讀: