从这两个问题:
Vim syntax coloring: How do I highlight long lines only?
我为.vimrc提取了以下配置:
augroup vimrc_autocmds
autocmd BufEnter * highlight OverLength ctermbg=darkred ctermfg=whitee guibg=#FFD9D9
autocmd BufEnter * match OverLength /\%>80v.\+/
augroup END
这适用于在vim中突出显示长度超过80个字符的行, 但是当我使用以下方法打开同一文件的另一个标签时:
:tab split
突出显示在新标签中不起作用,仅在原始标签中有效。如何为新标签实现相同的效果?
答案 0 :(得分:3)
以下是您的代码段的清理版本:
highlight OverLength ctermbg=darkred ctermfg=white guibg=#FFD9D9
augroup vimrc_autocmds
autocmd!
autocmd BufEnter,WinEnter * call matchadd('OverLength', '\%>80v.\+', -1)
augroup END
vimrc
时,该组中的自动命令已正确清除。BufEnter
事件仅触发一次,您需要收听另一个事件WinEnter
,该事件在窗口获得焦点时触发。matchadd()
比:match
更灵活,并允许您设置突出显示的优先级(如果您依赖hlsearch
,则非常有用)。