这些是用于在 .vimrc
文件中设置自定义单词突出显示的行。
hi CustomYellow ctermbg=205 guibg=yellow guifg=black ctermfg=black
call matchadd('CustomYellow', '\<TODO\>')
hi CustomCyan ctermbg=205 guibg=Cyan guifg=black ctermfg=black
call matchadd('CustomCyan', '\<DEBUG\>')
hi CustomGray ctermbg=205 guibg=Gray guifg=black ctermfg=black
call matchadd('CustomGray', '\<TEMP\>')
当我在不同的 Vim 窗口中打开不同的文件时,突出显示可以正常工作,但是,如果我使用选项卡在同一个 Vim 窗口中打开不同的文件,突出显示就会停止工作。
最佳答案
matchadd()
与 :match
一样,仅适用于当前窗口。 :split
和 :tab split
创建一个新窗口,并且不会突出显示匹配项。您需要为每个新窗口重新进行匹配定义。
:autocmd WinEnter
允许您在进入窗口时执行代码。为了避免在重新访问窗口时定义额外的相同匹配项,您可以使用静态 {id}
并在该错误已存在时使用 :silent!
抑制错误:
autocmd WinEnter * silent! call matchadd('CustomYellow', '\<TODO\>', 10, 12345)
关于Vim matchadd 命令不适用于多个选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56555803/