我正在使用mvim。我的vimrc中有以下行。
"highlight text that goes over 80 columns
highlight OverLength ctermbg=red ctermfg=white guibg=#592929
match OverLength /\%81v.*/
有时在我的项目中,我会看到突出显示的额外字符,有时候我没有。我的意思是一旦vim显示额外的字符,它将继续显示额外的字符。但是,如果我退出vim并启动vim实例,它可能不会突出显示额外的字符。要解决这个问题,我输入
match OverLength /\%81v.*/
我很困惑为什么会这样。有些插件可能会搞乱这些设置吗?
答案 0 :(得分:2)
插件可能通过设置自己的match
来撤消它。您也可能正在创建一个新窗口。 match
是每个窗口(不是每个缓冲区,而不是全局),因此它仅适用于执行match
命令时处于活动状态的窗口。
您可以尝试创建autocmd以在新窗口上设置匹配:
au! WinEnter match OverLength /\%81v.*/
请注意,这不会在第一个窗口中执行。
答案 1 :(得分:0)
在MacVim 7.3(快照56)中使用新标签时,我遇到了同样的问题。当打开一个新窗口时突出显示有效,但是当我打开一个新的Tab时它不再起作用了。所以我将以下自动命令添加到我的.vimrc文件中:
autocmd BufWinEnter,BufRead * match OverLength /\%81v.\+/
现在它适用于我,在任何新窗口或标签和缓冲区。
我希望这会有所帮助!