2013/03/10

讓 vim 顯示 tab 和行末的空白字元

之前的筆記提過混合 tab 和空白造成 coding style 混亂的問題和建議解法:
以上的解法要團隊共同遵守才有效,但我們經常需接手其他作法不同的團隊的程式。因 tab 和空白都以空白顯示,要分辨原來團隊的作法並不容易。

以下是讓 vim 顯示 tab 和行末空白字元的指令:
set listchars=eol:$,tab:>.,trail:~,extends:>,precedes:<
set list
這種設定會以一般的「大於」和「句點」等一般符號來表現 tab 和行末空白。若怕會混淆,可以試試以下的特殊符號 (至少在 Ubuntu 上可用):
set listchars=eol:↵,tab:»·,trail:╳,extends:»,precedes:«
set list
建議將此指令加在 `~/.vimrc`,當成預設組態。這樣,每次用 vim 時 tab 都會有特別的顯示方式,而看起空白的就是真的空白 (行末的空白除外),很容易分辨。用以下指令就可暫時取消這種顯示方式:
set nolist
有些人可能希望空白也能有不同的顯示方法。方法如下:
highlight Whitespace cterm=underline gui=underline ctermbg=NONE guibg=NONE ctermfg=yellow guifg=yellow
autocmd ColorScheme * highlight Whitespace gui=underline ctermbg=NONE guibg=NONE ctermfg=yellow guifg=yellow
match Whitespace /  \+/
參考資料:

沒有留言: