我希望vim为我设置“长”线。以80列为例,我想突出显示超过该长度的行。这是我认为.vimrc文件应该包含的内容,尽管它(1)不起作用,(2)使用Perl的正则表达式语法来说明我的观点,因为我不太了解Vim:
...
highlight Excess ctermbg=0
au Syntax * syn match Excess /.{80,}$/
...
这(至少在我看来)应该标记超过80列的行。我理想的是能够只为超过80列的行部分着色,因此如果一行是85列,那么第81列到第85列将被突出显示。
我确信Vim可以做到这一点,而不是掌舵我。
答案 0 :(得分:28)
我需要autocomand为我工作:
augroup vimrc_autocmds
autocmd BufEnter * highlight OverLength ctermbg=darkgrey guibg=#111111
autocmd BufEnter * match OverLength /\%75v.*/
augroup END
如果你的目标是平均80列,那么也喜欢使用75的想法。
取自:
http://blog.ezyang.com/2010/03/vim-textwidth/
没有BufEnter
失败的可能原因:highlight + match只能使用一次。多次使用意味着重写旧的。 How to add multiple highlights
答案 1 :(得分:16)
我在我的vimrc中有这个。
我在这里找到了它:Vim 80 column layout concerns
highlight OverLength ctermbg=darkred ctermfg=white guibg=#FFD9D9
match OverLength /\%81v.*/
您可能希望根据喜好调整颜色。
答案 2 :(得分:3)
由于我不喜欢Vim 7.3列标记,我只使用第80列之后的高亮文本...至少这是我想要的95%的时间。
对于其他5%的时间,我写了这个小扩展,也有一个快速的方法来禁用突出显示:
答案 3 :(得分:1)
我使用以下方法:
hi gitError ctermbg=Red
match gitError /^.*\s$/
2match gitError /^.\{120\}.*$/
(这些匹配一些git pre-commit hooks)
第二行应该对你有利。
答案 4 :(得分:1)
这使用自动命令调整OverLength值以匹配您的文件类型。
" highlight lines longer than `textwidth` size for each filetype
autocmd FileType *
\ if &textwidth |
\ exec 'match OverLength /\%' . string(&textwidth+2) . 'v.*/' |
\ endif