1

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

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

例子:

我将/new$/在文件类型上有一个正则表达式foo。如果我输入new一行,它应该突出显示该文本(首选)或该行。如果我当时按回车键,它应该保持突出显示。如果我在其后键入一个字符,突出显示应该立即消失。

这在vim中可能吗?

4

1 回答 1

3

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

" 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

. 最后一个可能会破坏现有的语法规则。如果您的案例与实际语法无关(它不会破坏它,只是覆盖突出显示),则首选第一个。为了在第一种情况下删除突出显示,您必须使用call matchdelete(42).

于 2012-07-27T12:54:34.857 回答