[轉] 爲 vim + tmux 開啓真彩色(true color)

有一些 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 來驗證是否成功。祝你的終端生活“豐富多彩”!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章