1

特定の正規表現がファイル内で一致する場合、それは構文エラーであることを知っているコードに取り組んでいます。

ファイル タイプのリストを指定し、それぞれに正規表現のリストを指定できるようにしたいと考えています。そのファイル タイプのファイルに入力すると、自動的に強調表示されます。

例:

/new$/file typeのような正規表現がありますfoo。行を入力newすると、そのテキスト (推奨) または行が強調表示されます。その時点で Enter キーを押すと、強調表示されたままになります。その後に文字を入力すると、ハイライトはすぐに消えます。

これは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 に答える