Vim右边距

有没有办法让Vim / gVim在当前文档中突出显示右边距? 我刚刚开始和Vim合作一段时间,我发现它在第80列没有右边距的时候感到恼火。

Vim 7.3引入了colorcolumn。

 :set colorcolumn=80 

记住短表可能会更容易。

 :set cc=80 

没有简单的方法来显示textwidth -margin的垂直边缘(在Vim 7.2和更早的版本中)。 但是,可以使用:match命令突出显示超出80列限制的所有字符。

 :match ErrorMsg /\%>80v.\+/ 

所以,一般的解决scheme是使用下面的自动命令。

 :autocmd BufWinEnter * call matchadd('ErrorMsg', '\%>'.&l:textwidth.'v.\+', -1) 

我在我的.vimrc中写了一个vimscript函数来切换colorcolumn当我按,8(逗号后面8,其中逗号是用户定义的命令定义的领导者,和八是我的助记键“显示边缘在第80列):

 " toggle colored right border after 80 chars set colorcolumn=81 let s:color_column_old = 0 function! s:ToggleColorColumn() if s:color_column_old == 0 let s:color_column_old = &colorcolumn windo let &colorcolumn = 0 else windo let &colorcolumn=s:color_column_old let s:color_column_old = 0 endif endfunction nnoremap <Leader>8 :call <SID>ToggleColorColumn()<cr> 

我已经改写了 Jonathan Hartley为7.2之类的旧Vim版本的答案 ,因为在Vim中没有colorcolumn列。

 highlight OverLength ctermbg=red ctermfg=white guibg=#592929 let s:OverLengthToggleVariable=0 function! ToggleOverLength() if s:OverLengthToggleVariable == 0 match OverLength /\%81v.\+/ let s:OverLengthToggleVariable=1 else match OverLength // let s:OverLengthToggleVariable=0 endif endfunction " I like <leader>h since highlight starts with h. nnoremap <leader>h :call ToggleOverLength()<cr>