GNOME Terminal本來就支持256色,不過也許是為了最大兼容,它並沒有設置環境變量來聲稱自己支持。所以,只需要 export TERM=xterm-256color 就能讓命令行程序知道終端支持256色了。把它加進你的 .bashrc 或者 .profile ,打開一個新 Bash 或者新 session 看看你的終端程序(比如 vim )等等是不是顏色豐富了一些呢?
另外,如果你使用 tmux (byobu),可以修改你的 .tmux.conf 文件( byobu 則是 .byobu/.tmux.conf ),讓 screen/tmux 會話也更漂亮一些:
復制代碼代碼如下:
set -g default-terminal "screen-256color"
不過等等!修改 TERM 變量其實是一件很危險 + tricky 的事情,尤其當你使用 screen/tmux 之類東西的時候(參見 tmux FAQ )……而且,你很有可能使用不止一種終端模擬器/tty,非 GNOME Terminal 也許就不支持256色,甚至壓根不是 xterm 系,這樣設置 TERM 可能導致 terminfo 出錯。
折騰了很久(期間順便弄清楚了這幾個配置文件分別是在什麼時候、什麼情況下以什麼順序加載)。最後挑選了一個最佳方案,即在 .bashrc 中加入這一段:
復制代碼代碼如下:
if [[ ($COLORTERM == gnome-terminal || $(cat /proc/$PPID/cmdline) == *gnome-terminal* )
&& $TERM != screen* ]]; then
export TERM=xterm-256color
fi
如此便僅在 GNOME Terminal 、且不在 screen/tmux 會話中時設置為 xterm-256color 。此外,如果你有使用一些快捷鍵等方式快速啟動 Byobu/screen/tmux ,那麼要注意檢查一下快捷鍵所對應的命令應該類似: env TERM=xterm-256color byobu (這類直接調用一般不會執行 .bashrc )。(事實上, Archlinux 的 byobu 包中帶的 byobu.desktop 的啟動參數正是如此。)
最後上張圖: