vim検索では、対話型編集がN番目に表示されます。

vim検索では、対話型編集がN番目に表示されます。

単語が複数回表示されるテキストが与えられたら、テキストをインタラクティブに検索し、fooN回目の時にfoo編集したいと思います。

そのようなタスクのパターンだけを見つけることができますが、search and replaceポイントは、すべての項目を編集したくなく、foo一部のコンテキストで見つかったパターンのみを編集したいということです。

答え1

c実行時にフラグを使用できます検索と置換:

:%s/foo/bar/gc

vim見つかるたびに交換を確認するようにfoo求められます。yes/no

または、n番目の項目を検索するには、次のようにしfooます。

n/foo

次に、交換するかどうかを判断できるようにvimn番目の項目に移動します。foo

答え2

私が正しく理解した場合:

  1. 探す

    /fooEnter

  2. 次にn

  3. 「あ、これは消したい」
    • dw
  4. 続けるn
  5. 「あ、これに変えたいbar
    • cwbarEsc
  6. 続くn...
  7. 「あ、これに変えたいbaz
    • cwbazEsc
  8. 続くn...

編集/修正:

便宜上、以下を追加しました。

imap <C-d> <ESC>

to .vimrc- これを忘れて、これがデフォルトのマッピングだと思いました。修正されました。

答え3

一般的な検索と置換オプションと同様に、vim確認オプションを渡して使用できますgc

たとえば、単語を置き換えるには、次の行を追加しますfoobar

:%s/foo/bar/gc

したがって、単語が見つかるたびにfooその単語を置き換えるかどうかを確認するように求められますbar。押すと交換され、それ以外の場合はy交換されnません。

答え4

vimコマンドを繰り返す頻度を最初に入力すると、複数のコマンドを繰り返すことができます。これはコマンドにも当てはまりますn

たとえば、9番目の発生fooタイプを変更します。

  1. /fooEnter 最初の位置に移動するにはEnterを押します。foo
  2. 8n次の位置に8回ジャンプするには、入力してください。それからあなたは9番目に表示されます
  3. cw単語を変更して新しい単語を入力するには、入力してください。

の説明に従って、手順2と3を続行できます。この回答

関連情報