92

Vim/gVim で複数の文字列を検索し、それらを異なる色で強調表示したいと考えています。すぐに使える Vim またはプラグインでこれを行う方法はありますか?

4

10 に答える 10

114

vim エディターで複数の単語を強調表示するには、2 つの簡単な方法があります。

  1. 検索モードに移動します。つまり、「/」と入力してから\vと入力し、検索したい単語を「| 」で区切って入力します。' (パイプ)。
    例えば:/\vword1|word2|word3

  2. 検索モードに移動し、検索する単語を「\| 」で区切って入力します。'。
    例えば:/word1\|word2\|word3

基本的に最初の方法では、検索に使用されるすべてのパイプまたはその他の区切り文字の前に余分なバックスラッシュを配置する必要がないように、正規表現モードになります。

于 2015-03-05T10:29:37.713 に答える
46

これは、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
于 2010-07-30T06:56:11.670 に答える
36

vim で複数の文字列を検索するには、次のようにします。

/search1\|search2

search1これは機能し、 と の両方を強調表示しますsearch2が、同じ色で表示されます。これはvimエディターで行う必要があります。

于 2014-12-04T22:15:55.280 に答える
20
于 2009-04-01T07:44:24.320 に答える
5

はい、すぐに使用できますmatchadd()

ハイライトを追加します。末尾の空白の場合:

:highlight ExtraWhitespace ctermbg=grey guibg=grey
:call matchadd('ExtraWhitespace', '\s\+$', 11)

すべての一致を表示するには:

:echo getmatches()

一致を削除するには、 を使用しますmatchdelete()。例えば。:

:call matchdelete(7)
于 2012-12-15T04:23:56.810 に答える
4

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.
于 2009-07-01T19:32:33.133 に答える
2

My Mark プラグインは、組み込みの検索のように、複数の単語を同時に異なる色で強調表示できます。多くのマッピングとコマンドが付属しており、パターンを永続化でき、複数のカラー パレットをサポートしています。

于 2014-03-28T14:40:56.267 に答える