在同一文件的多个选项卡中突出显示 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
则很有用)。
来自这两个问题:
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
则很有用)。