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

Highlight lines longer that 80 characters in vim in multiple tabs of the same file

来自这两个问题:

Vim 80 column layout concerns

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

突出显示在新选项卡中不起作用,仅在原始选项卡中有效。如何在新标签页实现相同的效果?

这是您的代码段的清理版本:

highlight OverLength ctermbg=darkred ctermfg=white guibg=#FFD9D9

augroup vimrc_autocmds
    autocmd!
    autocmd BufEnter,WinEnter * call matchadd('OverLength', '\%>80v.\+', -1)
augroup END
  • 该组中的自动命令已正确清除when/if您重新加载 vimrc
  • BufEnter事件只触发一次,需要监听另一个事件WinEnter,window获得焦点时触发
  • matchadd():match 更灵活,允许您设置突出显示的优先级(如果您依赖 hlsearch 则很有用)。