92

選択した検索セグメント内を移動する Vim/Vi のコマンドはありますか?

たとえば、単語を検索する場合、強調表示されたセグメントの末尾にカーソルを移動するコマンドはありますか? 「FishTaco」という単語があり、「Fish」のすべてのインスタンスを検索して、その後に何かを挿入したいとします。グローバルな置換ができることはわかっていますが、連続していないいくつかのインスタンスだけを変更したい場合はどうすればよいでしょうか?

アクションを実行するために、カーソルを現在強調表示されているセグメントの末尾に移動できると便利な場所を確認できました。

4

6 に答える 6

148

あなたはこれでそれを行うことができます:

/Fish/e

最後の/eは、検索領域の最後にカーソルを置きます(デフォルトでは最初の文字ではありません)。

于 2012-05-22T18:22:13.810 に答える
85

Fish の最後の文字の後にカーソルを置きたい場合は、次を使用できます

/Fish/e+1

これにより、カーソルが h の後に配置されます。(カーソルがない場合+1、カーソルは最後の文字の左側までになります。)

Fish の後にカーソルを配置することに特に関心があるが、「FishTaco」に表示される場合にのみ配置する場合は、次のオプションのいずれかを試すことができます。

使用できます

/FishTaco/s+4

カーソルは Fish と Taco の間に置かれます。は/s+4、カーソルを検索語の開始位置の 4 桁後に配置します。

同様に使用できます

/FishTaco/e-3

これにより、カーソルは最後の (終了) 文字の左側の 3 桁に配置されます。

使用することもできます

/FishTaco/b+4 

/b+4として扱われるため/s+4です。

于 2012-05-22T18:25:44.410 に答える
29

をすでに検索している場合は/Fish、 を介して一致の最後に移動するように検索をすばやく変更できます//e。これにより、最後の検索が繰り返されますが、e既に説明されている修飾子が追加されます。

于 2012-05-23T05:54:38.263 に答える
13

/ long-regexp1 \zs long-regexp2 / .. カーソルは \zs で停止します。 :help \zs を参照してください。

于 2015-06-27T14:21:56.810 に答える
12

視覚的に選択したら、 を使用oして、選択したブロックの開始位置と終了位置の間でカーソル位置を切り替えることができます。選択が行単位の場合、これはの位置を切り替えます。つまり、カーソルは選択の開始行と終了行に移動しますが、開始文字と終了文字には移動しません。選択がキャラクターごとに行われる場合、動きもキャラクターごとに行われます。

`<とを使用し`>てビジュアル ブロックの開始と終了の間でカーソルを切り替えることもできますが、これは選択自体に影響するため、選択の境界をリセットまたは調整するために使用されます。

o編集:ああ、しかし検索のハイライトでは、行の挿入が開始されるため、これは機能しません。検索のハイライトは視覚的な選択と同じではないと思います。申し訳ありません:)

于 2012-05-22T18:33:42.140 に答える
9

あなたの質問の「試合終了時のカーソル」の部分はすでに回答されています。

できます:%s/Fish/FishTaco/c。これにより、すべての置換を確認または拒否し、「試合終了時のカーソル」ビジネス全体をスキップする機会が与えられます。

于 2012-05-22T22:01:37.123 に答える