我的vimrc中有以下内容,以突出显示超过80列的所有行:
highlight ColorColumn ctermfg=red ctermbg=bg
call matchadd('ColorColumn', '\%81v.\+', 100)
在大多数情况下效果很好。但是,我注意到如果我在新标签中打开文件,它根本不起作用。我可以通过:source $MYVIMRC
解决这个问题。但问题是,当我找到我的vimrc时,我丢失了我的indentLines插件。我做了一些测试,我发现只要vimrc
来源于vim的开放实例,indentLines就会消失。但是,当我在新选项卡中打开文件时,我无法确定为什么没有调用上面显示的2行。有什么想法吗?
答案 0 :(得分:3)
matchadd()
仅影响当前窗口。为了在所有窗口上都可以将它添加到.vimrc:
if exists("*matchadd")
augroup colorColumn
au!
au BufEnter * call matchadd('ColorColumn', '\%81v.\+', 100)
augroup END
endif
编辑:正如Ingo在评论中指出的那样,BufEnter
会在没有必要时多次触发。以下几行纠正了这个问题:
if exists("*matchadd")
augroup colorColumn
au!
au VimEnter,WinEnter * call matchadd('ColorColumn', '\%81v.\+', 100)
augroup END
endif