在同一文件的多个选项卡中,突出显示vim中超过80个字符的行



根据这两个问题:

Vim 80立柱布局涉及

Vim语法着色:如何仅突出显示长行?

我已经为我的.virc:提取了以下配置

augroup vimrc_autocmds
autocmd BufEnter * highlight OverLength ctermbg=darkred ctermfg=whitee guibg=#FFD9D9
autocmd BufEnter * match OverLength /%>80v.+/
augroup END

这适用于在vim中突出显示超过80个字符的行,但是当我使用打开同一文件的另一个选项卡时

:tab split

高亮显示在新选项卡中不起作用,只在原始选项卡中起作用。如何为新选项卡实现相同的效果?

以下是您的代码片段的清理版本:

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,则非常有用)