我正在处理一些代码,我知道如果某个正则表达式在文件中找到匹配项,那么这是一个语法错误。
我希望能够指定一个文件类型列表,每个文件类型都有一个正则表达式列表,当我在该文件类型的文件上键入它们时,它们会自动突出显示。
例子:
我将/new$/
在文件类型上有一个正则表达式foo
。如果我输入new
一行,它应该突出显示该文本(首选)或该行。如果我当时按回车键,它应该保持突出显示。如果我在其后键入一个字符,突出显示应该立即消失。
这在vim中可能吗?
我正在处理一些代码,我知道如果某个正则表达式在文件中找到匹配项,那么这是一个语法错误。
我希望能够指定一个文件类型列表,每个文件类型都有一个正则表达式列表,当我在该文件类型的文件上键入它们时,它们会自动突出显示。
例子:
我将/new$/
在文件类型上有一个正则表达式foo
。如果我输入new
一行,它应该突出显示该文本(首选)或该行。如果我当时按回车键,它应该保持突出显示。如果我在其后键入一个字符,突出显示应该立即消失。
这在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
. 最后一个可能会破坏现有的语法规则。如果您的案例与实际语法无关(它不会破坏它,只是覆盖突出显示),则首选第一个。为了在第一种情况下删除突出显示,您必须使用call matchdelete(42)
.