質問
VIMを分割していくつかのファイルまたは同じファイルの異なる部分を表示する場合、あるウィンドウで1つの検索を行い、別のウィンドウで異なる検索を行う方法はありますか?たとえば、上のウィンドウに検索パターン foo
を、下のウィンドウに検索パターン bar
を持たせたいのです。
アクティブな検索パターンは、検索の強調表示を使用する際に強調表示されるものに影響し、上部のウィンドウで foo
を強調表示した後、下部のウィンドウに切り替えて< code> bar 、および foo
が上部ウィンドウで強調表示されなくなります。
編集: この質問は関連しているようですが、完全に重複しているかどうかはわかりません。
解決
複数の検索パターンを強調表示するには、このスクリプトを使用します。
他のヒント
Canopusの答えは、これを頻繁に使用する場合におそらく最も良い方法ですが、バニラvimのインストール(または、プラグインをインストールせずに、ポイントにそれ以上)を行う場合は、単に行うことができます:
:call matchadd('Search', 'foo')
:call matchadd('Search', 'bar')
その後、すべての一致をクリアできます
:call clearmatches()
matchaddの出力を変数に保存することで、(:call matchdelete(...)
を使用して)クリアすることについてもっとうるさい方法もあります。詳細については、:help matchadd()
および:help matchdelete()
あまりにも複雑な構文ファイルを使用していない場合(具体的には、rainbow.vim強調表示を使用していない場合)、おそらく次のように使用することもできます。
:syn keyword Search foo
:syn keyword Search bar
でクリア
:syn clear Search
これで考えられる唯一の利点は、強調表示しようとしている一致が多数ある場合、 keyword
強調表示が match
ハイライトよりもはるかに高速です(後者は正規表現検索を使用するため)。 rainbow.vimを使用している場合でも、 synキーワード
マッチを実行できますが、コマンドははるかに複雑です。