Vim/gVim で複数の文字列を検索し、それらを異なる色で強調表示したいと考えています。すぐに使える Vim またはプラグインでこれを行う方法はありますか?
10 に答える
vim エディターで複数の単語を強調表示するには、2 つの簡単な方法があります。
検索モードに移動します。つまり、「/」と入力してから\vと入力し、検索したい単語を「| 」で区切って入力します。' (パイプ)。
例えば:/\vword1|word2|word3
検索モードに移動し、検索する単語を「\| 」で区切って入力します。'。
例えば:/word1\|word2\|word3
基本的に最初の方法では、検索に使用されるすべてのパイプまたはその他の区切り文字の前に余分なバックスラッシュを配置する必要がないように、正規表現モードになります。
これは、2つの検索パターンに対して、スクリプトなしで手動で実行できます。
:match Search /pattern/
:match Search /<CTRL-R>/ # highlight the current search pattern
検索はハイライトグループの名前です。補完を使用して、別のグループを選択し、別の色でハイライトします。
:match <TAB>
:match <TAB> # completion will list all highlight group
これは、独自のvim構成を使用できない場合に便利です。
:match none # clear the match pattern to stop highlighting
vim で複数の文字列を検索するには、次のようにします。
/search1\|search2
search1
これは機能し、 と の両方を強調表示しますsearch2
が、同じ色で表示されます。これはvimエディターで行う必要があります。
はい、すぐに使用できますmatchadd()
。
ハイライトを追加します。末尾の空白の場合:
:highlight ExtraWhitespace ctermbg=grey guibg=grey
:call matchadd('ExtraWhitespace', '\s\+$', 11)
すべての一致を表示するには:
:echo getmatches()
一致を削除するには、 を使用しますmatchdelete()
。例えば。:
:call matchdelete(7)
MultipleSearch:それぞれが異なる色で、同時に複数の検索を強調表示します。
http://www.vim.org/scripts/script.php?script_id=479
:Search <pattern1> //will highlight all occurences of <pattern1> in the current buffer.
A subsequent :Search <pattern2> will highlight all occurences of <pattern2> in the current buffer.
My Mark プラグインは、組み込みの検索のように、複数の単語を同時に異なる色で強調表示できます。多くのマッピングとコマンドが付属しており、パターンを永続化でき、複数のカラー パレットをサポートしています。