カーソルを動かさずに検索語を強調表示する


15

Vimを使用して、しばらくソースコードの一部を見つめていると、画面上の変数を突然表示させたいことがあります。それは簡単です:/<var>それはそれらすべてを強調しています。私の問題は、多くの場合、検索によってウィンドウが移動するため、同じ場所からソースコードを見ていません。たとえ数行しかシフトしていなくても、物事がどこに移動したかを把握するのに数秒かかるので、それでも私を失望させます。

次の一致にカーソルを移動せずに検索語を強調表示することは可能ですか?


2
正確な答えではありませんが、2つのバックティック( ``)を使用して、以前の場所にジャンプします。
イズカタ

回答:


1

http://vim.wikia.com/wiki/VimTip1572

このプラグインを使用した場合は、単に機能を有効にすることができます

\ m

次に、NumPadキーを使用して、カーソルを動かさずに、その単語に色を割り当てます。

1

多数の異なる単語、または必要に応じてより複雑な検索パターンに対して、一度に多数の異なるハイライトを使用できます。


このプラグインが大好きです!
アンドリューウッド

15

skyblueの答えは、通常の検索ハイライトを使用して、目的を達成する方法のアイデアの中核を示しています。

*commandと同様に機能するキーバインドを作成することで、この手法を拡張しましたが、実際には次の一致に移動しません。

(自分自身の使用とビューの復元を避けるため)の単語選択に相当するものを指摘してくれたgaryjohnに感謝します。これにより、マッピングに直接移動できるようにコードが十分に単純化されます(関数を使用する必要がなくなります)。部分的な単語(など)に一致するマッピングも追加しました 。expand()**g*

:" The leader defaults to backslash, so (by default) this
:" maps \* and \g* (see :help Leader).
:" These work like * and g*, but do not move the cursor and always set hls.
:map <Leader>* :let @/ = '\<'.expand('<cword>').'\>'\|set hlsearch<C-M>
:map <Leader>g* :let @/ = expand('<cword>')\|set hlsearch<C-M>

1
あなたはwinsaveviewへの呼び出し()、winrestview()と避けることができnormal *置き換えることによって、let @/ = @/let @/ = expand("<cword>")
ゲイリージョン

@garyjohn:はい、それは良いです。によって行われた「単語」の選択に相当するものがあるかどうかはわかりませんでし*<cword>が、そうです。
クリスジョンセン

13

検索レジスタを、一致させたい変数に設定することもできます。

最初に、検索の強調表示がオンになっていることを確認します。

:set hlsearch

次に、次のコマンドで検索レジスタを設定できます。

:let @/="variable"

これは、次の一致にジャンプすることなく、変数のすべての出現を強調表示します。

詳細については、 :help @/


7

1つの方法は、:matchコマンドを使用することです。たとえば、

:match Question '^R^W'

これにより、質問ハイライトグループを使用して、カーソルの下の単語が強調表示されます。私の端末では緑がきれいなので、よく質問グループを使用します。利用可能なハイライトグループを表示するには、実行します

:hi

それぞれは、Ctrl-RとCtrl-Wであり、カーソルの下の単語に置き換えられています。見る^R^W

:help c_CTRL-R_CTRL-W

詳細については。見る

:help :match

:matchコマンドの詳細については。その強調表示をクリアするには、単に実行します

:match

引数なし。


1

に加えて:

 :set hlsearch

あなたがしたいことがあります:

 : set noincsearch

0

*私たちが持っているのと同様:

[I ............................. it show where the word under the cursor appears

見る価値はあります:h [I。そこで、お客様のニーズに関連する興味深いことがいくつか見つかりました。

Stackoverflowにも同様の質問があり、答え記入ます(もう少し詳しく)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.