vim search でファイル内に 5 つの一致が見つかったとします。これらの 5 つの一致はすべて黄色で強調表示されます。 を押して、これらを切り替えますn
。しかし、カーソルが 1 つの一致から次の一致に移動しても、強調表示はすべて同じ色のままです。これでは、カーソルがどの一致にあるかわかりにくくなります。すべての一致を 1 つの色で強調表示し、 を使用して一致にアクセスする場合はn
、現在アクセスしている一致を別の色で表示するように vim に指示する方法はありますか?
答え1
現在のものを別の方法で強調表示できる組み込みオプションはありません。検索を作成するときにオプションがあります'incsearch'
が、それだけです。
検索ハイライトの上に別のハイライトを使用することもできます。たとえば、:match
; を使用すると、特殊な\%#
正規表現アトムによって、一致が現在のカーソル位置に制限されます。
:execute 'match IncSearch /\%#' . @/ . '/'
これの問題は、現在の検索パターン ( @/
) が変更されるたびに強調表示を調整する必要があることです (ああ、 のような検索オフセットは処理されません/foo/e-1
)。そのため、コマンドをフックするには、すべての検索関連コマンド ( /
、*
など)を上書きする必要があります:match
。これはお勧めしません。