Vim 突出显示特定正则表达式匹配的文本,live

Vim 突出显示特定正则表达式匹配的文本,live,vim,Vim,我正在编写一些代码,我知道如果某个正则表达式在文件中找到匹配项,那就是语法错误 我希望能够指定一个文件类型列表,每个文件类型都有一个正则表达式列表,当我在该文件类型的文件上键入它们时,这些正则表达式将自动高亮显示 例如: 我将在文件类型foo上使用类似于/new$/的正则表达式。如果我在一行中键入new,它应该突出显示该文本(最好)或该行。如果我在该点按enter键,它应该保持高亮显示。如果我在后面键入一个字符,突出显示应该立即消失 这在vim中是否可行?根据现有的语法文件,您可能需要以下选项之

我正在编写一些代码,我知道如果某个正则表达式在文件中找到匹配项,那就是语法错误

我希望能够指定一个文件类型列表,每个文件类型都有一个正则表达式列表,当我在该文件类型的文件上键入它们时,这些正则表达式将自动高亮显示

例如:

我将在文件类型
foo
上使用类似于
/new$/
的正则表达式。如果我在一行中键入
new
,它应该突出显示该文本(最好)或该行。如果我在该点按enter键,它应该保持高亮显示。如果我在后面键入一个字符,突出显示应该立即消失


这在vim中是否可行?

根据现有的语法文件,您可能需要以下选项之一:

" Somewhere in the vimrc
augroup vimrcFoo
    autocmd!
    autocmd FileType,WinEnter * :if &ft is# 'foo' | 
                                \    silent! call matchadd('Error', 'new$', -1, 42) |
                                \endif
augroup END

" In after/syntax/foo.vim
syntax match Error /foo$/ containedin=@ALL
。最后一个可能会破坏现有的语法规则。如果您的案例与实际语法无关,则首选第一个(它不会破坏它,只需覆盖高亮显示)。要在第一种情况下删除突出显示,必须使用
调用matchdelete(42)