時々、現在のバッファにカスタムの追加の構文ハイライトを適用したいと思います。
ビルドインvim構文/ハイライトシステムを使用してこれを行うにはどうすればよいですか(ハイライトプラグインは使用したくない)
例として、現在のバッファー内のすべてのassertステートメントを強調表示したいと思います。
時々、現在のバッファにカスタムの追加の構文ハイライトを適用したいと思います。
ビルドインvim構文/ハイライトシステムを使用してこれを行うにはどうすればよいですか(ハイライトプラグインは使用したくない)
例として、現在のバッファー内のすべてのassertステートメントを強調表示したいと思います。
強調表示が特定のファイルタイプ(Javaなど)のみを対象としていて、常にそれが必要な場合は、:syn match ...
定義をに配置して元の構文を拡張します~/.vim/after/syntax/java.vim
。
dwalterが示しているように、自発的な強調表示には:match
(または:2match
)を使用します。
オン/オフロジックを切り替えるなど、より複雑なマッピングを作成する場合は、/を使用しmatchadd()
ますmatchdelete()
。
最後に、テキストマーカーでドキュメントをマークアップするなど、任意の単語や文字列を強調表示する必要がある場合は、Mark(私が保守を引き継いだ)のようなプラグインの快適さをお勧めします。
match
必要に応じて使用できhighlight
ます。
例:
:hi MyAsserts term=bold ctermbg=Cyan
:match MyAsserts /assert(.*)/
assert()
シアンの背景でステートメント
を強調します。:match
引数なしでリセットされます。
highlight
いずれかの詳細については、またはmatch
を介してドキュメントを参照してください
:help hi
:help match
ハイライトを再利用するには、これらのコマンドをファイルに保存して、:source file.vim
いつでもロードするために使用できます。別の方法は、内にコマンドを定義すること.vimrc
です。
hi MyAsserts ctermbg=Cyan
command -bar -nargs=0 HiAsserts match MyAsserts /assert(.*)/
"highlight any given regex
command -bar -nargs=1 HiIt match MyAsserts /<args>/
で呼び出して:HiAsserts
、assert()
ステートメントを強調表示したり、バッファ内の:HiIt foo
すべてを強調表示したりします。foo