web-dev-qa-db-ja.com

(g)Vimで複数の検索を強調表示する方法はありますか?

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

57
feihtthief

複数の単語を強調表示 」を試してください。これは、matchadd()を使用します。

18

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

  1. 検索モードに移動します。つまり、「/」と入力し、「\ v」に続けて「」(パイプで区切って検索する単語を入力します)。
    例:/\vword1 | Word2 | Word
  2. 検索モードに移動し、検索する単語を「\」で区切って入力します。
    例:/ Word1\| Word2\| Word

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

54
Raviteja

これは、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
42
philant

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

/search1\|search2

これは機能し、search1およびsearch2、ただし同じ色。 vimエディターでこれを行う必要があります。

27
Naren

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

ハイライトを追加するには、例えば末尾の空白の場合:

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

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

_:echo getmatches()
_

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

_:call matchdelete(7)
_
5
James Haigh

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.
4
Naga Kiran
:%s /red\|green\|blue/

ただし、キーワードごとに異なる色を維持する方法についてはわかりません。ありがとう。

1
Pri Bhi

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

0
Ingo Karkat

MultipleSearch2は、vimの検索と統合される別のスクリプトです。 http://www.vim.org/scripts/script.php?script_id=118

0
user12371