可能最有效的解決方案是使用匹配突出顯示「繪製」縮進指南 。要了解它如何幫助,看看下面這個例子:
:match Search /\%(\_^\s*\)\@<=\%(\%1v\|\%5v\|\%9v\)\s/
它突出(使用搜索高亮組,它可以使用任何 等,當然)的第一,第五,第九(它可以是繼續) 虛擬列佔用的空格符號前面沒有任何內容,但是從 開始的行中有空格。所以,這產生四空間縮進,突出顯示 三個層次的深度。
爲了概括這個想法它仍然只是產生像根據以上提及的是 圖案當前緩衝區的textwidth
和shiftwidth
(處理更深縮進水平和適當的縮進寬度)。這個任務可能是 只是自動化,如下面的功能所示。
function! ToggleIndentGuides()
if exists('b:indent_guides')
call matchdelete(b:indent_guides)
unlet b:indent_guides
else
let pos = range(1, &l:textwidth, &l:shiftwidth)
call map(pos, '"\\%" . v:val . "v"')
let pat = '\%(\_^\s*\)\@<=\%(' . join(pos, '\|') . '\)\s'
let b:indent_guides = matchadd('CursorLine', pat)
endif
endfunction
每當你需要縮進導遊的緩衝時間,可以通過 :call ToggleIndentGuides()
接通。當然,您可以更改突出顯示組 (或僅爲縮進指南創建一個特殊的縮略圖),爲此設置一個方便的 映射並且/或者從autocmd
爲某些文件 類型調用它。
縮進引導從我.vimrc
文件突出配置:https://gist.github.com/734422
看看https://github.com/nathanaelkane/vim-indent-guides – 2014-02-27 16:47:00