有一些 vim 主題(如 gruvbox 或 solarized8)在 GUI 和終端下效果不同,有可能是因爲這個主題需要 true color (24 位顏色) 的支持,而通常終端只開啓 256 色的支持(如 xterm-256color
)。下面來看看怎麼開啓 true color 支持。
驗證終端的色彩支持
真彩色的支持是需要終端的支持的,常用的終端(如 iterm2, konsole 等) 都已經支持了,詳細的列表可以參考 Colours in terminal。
當然,我們可以自己驗證終端是否支持真彩色。在終端裏執行 24-bit-color.sh 腳本,如果支持真彩色,則顯示如下:
否則則類似下圖:
tmux 開啓真彩色
tmux > 2.2 後開始支持真彩色。在 .tmux.conf
中添加如下內容:
set -g default-terminal screen-256color
set-option -ga terminal-overrides ",*256col*:Tc" # 這句是關鍵
重新開啓 tmux 即可。注意要先退出所有正在運行的 tmux 後再重開 tmux。
tmux 外的terminal使用的TERM 需要和tmux 是一樣的
export TERM=screen-256color
vim 開啓真彩色
vim >= 7.4.1770
及 neovim >= 0.2.2
都支持真彩色,但需要少許配置。在 .vimrc
中加入:
if has("termguicolors") " fix bug for vim set t_8f=^[[38;2;%lu;%lu;%lum set t_8b=^[[48;2;%lu;%lu;%lum " enable true color set termguicolors endif |
其中 termguicolors
用來開啓真彩色,前面兩行用來解決 vim 的 BUG (neovim 不需要),其中 ^[
是代表 ESC 鍵,需要在 vim 中按 Ctrl-v ESC
來輸入。
最後可以在 vim 中開啓 terminal (vim 8 或 neovim 中執行 :terminal
),執行上面的 24-bit-color.sh
來驗證是否成功。祝你的終端生活“豐富多彩”!