vimで選択を検索


107

C ++を作成するときは、ビジュアルスタジオにvimおよびvimプラグインを使用します。多くの場合、たとえばへのすべての呼び出しなど、関数内の文字列を検索したいと思っていますobject->public_member.memberfunc()

vimが単一の単語を検索する便利な方法を提供していることを知っています。これはandを押すこと*#、ユビキタススラッシュ/コマンドを使用して入力された文字列を検索することもできます。上記のように長い文字列のすべてのインスタンスを検索しようとすると、後に再入力するのにしばらく時間がかかります/

選択を検索する方法はありますか?たとえば、で強調表示してvからでコピーします。y後に貼り付ける方法はあり/ますか?より簡単なショートカットはありますか?


回答:


154

このVimのヒントを確認してください:視覚的に選択されたテキストを検索します

または、選択したテキストをyでヤンクして検索モード/に移動し、最後にヤンクしたテキストをCtrl + R 0で貼り付けることができます


4
@CMS。ありがとう。すばらしいヒントです。:regを使用してレジスターの内容を確認し、cntl-R Nを使用してレジスターNの内容を取得するのは優れています!
Rob Wells、

84

回答

  1. 検索したいテキストをヤンク
  2. q/p
  3. Enter

説明

q//コマンドモードであることを除いて、バニラ検索と同様に機能するため、p実際には文字を入力する代わりに「貼り付け」を行いますp。したがって、上記は検索しているテキストをコピーして検索に貼り付けます。

詳細を入力するには :help q/


4
<ctrl-r>を入力するのは不便なので、これが好きです。
1

優れた!でemacsを使用するとevil-mode、これは実際に機能しますが、受け入れられた回答は悲惨に壊れます(おそらくCtrlキーの使用のため)。
エストラーダ

2
この他の回答のコメントに記載されているように、単純な文字列に最適ですが、正規表現の特殊文字をエスケープしません。
Bluu 2016年

1
そして、それをヤンクする必要すらありません。視覚的にそれを選択し、q/gvpここでgv...最後の視覚的な選択の略

1
@nwildner、q/gvp私にはうまくいきません。あなたの提案を明確にしてもらえますか?
BAM

38

使用のq /だけではなく/。(q と同じ)。これで、コマンドと検索履歴を介してVIM編集できます!(Ctrl-NとCtrl-Pを試してみてください)。


10

そのためのプラグインがあることを(優れた本Practical Vimを通じて)学んだところです。あなたは見つけることができますGitHubの上のプラグインを

プラグインを使用すると*、およびで視覚的な選択を検索できます#


5
他の答えはエスケープしないことに注意してください。これらのメソッドを使用すると、現在のmagic設定に応じて、選択したメタ文字は文字どおりに検索されません。これにより、バランス調整が必要なメタキャラクターの検索が失敗する可能性さえあります。ここで言及したプラグインは、選択したテキストを検索する前にエスケープします。
カートハッチンソン2015年

1
それは動作しますが、残念ながら、あなたが使用することはできませんnコーリーさんとCMSのアプローチは許可しない一方で、次FOUND項目に移動するには...
Ayrat

2

実際にテキストを視覚的に選択し、*および#を押して次の出現箇所を検索できます。同じように機能しますが、唯一の注意点は次のとおりです。

選択範囲の空白は、検索時にすべての空白と一致します(「hello world」を検索すると、行の終わりに「hello」が見つかり、次の行の先頭に「world」が見つかります)。

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


2
私にとっては、テキストを視覚的に選択してから*を押すと、視覚的な選択が拡張されます。
martin jakubik 14

デフォルトでは、ページからマッピングのvimrcに置くことができない場合を除き...
Ayrat
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.