1. 程式人生 > >為 vim + tmux 開啟真彩色(true color)

為 vim + tmux 開啟真彩色(true color)

有一些 vim 主題(如 gruvboxsolarized8)在 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-256colorset-option -ga terminal-overrides ",*256col*:Tc" # 這句是關鍵

重新開啟 tmux 即可。注意要先退出所有正在執行的 tmux 後再重開 tmux。

#vim 開啟真彩色

vim >= 7.4.1770neovim >= 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 termguicolorsendif

其中 termguicolors 用來開啟真彩色,前面兩行用來解決 vim 的 BUG (neovim 不需要),其中 ^[ 是代表 ESC 鍵,需要在 vim 中按 Ctrl-v ESC 來輸入。

最後可以在 vim 中開啟 terminal (vim 8 或 neovim 中執行 :terminal),執行上面的 24-bit-color.sh

來驗證是否成功。祝你的終端生活“豐富多彩”!