単語が複数回表示されるテキストが与えられたら、テキストをインタラクティブに検索し、foo
N回目の時にfoo
編集したいと思います。
そのようなタスクのパターンだけを見つけることができますが、search and replace
ポイントは、すべての項目を編集したくなく、foo
一部のコンテキストで見つかったパターンのみを編集したいということです。
答え1
c
実行時にフラグを使用できます検索と置換:
:%s/foo/bar/gc
vim
見つかるたびに交換を確認するようにfoo
求められます。yes/no
または、n番目の項目を検索するには、次のようにしfoo
ます。
n/foo
次に、交換するかどうかを判断できるようにvim
n番目の項目に移動します。foo
答え2
私が正しく理解した場合:
探す
/foo
Enter次にn
- 「あ、これは消したい」
- dw
- 続けるn
- 「あ、これに変えたい
bar
」- cw
bar
Esc
- cw
- 続くn...
- 「あ、これに変えたい
baz
」- cw
baz
Esc
- cw
- 続くn...
編集/修正:
便宜上、以下を追加しました。
imap <C-d> <ESC>
to .vimrc
- これを忘れて、これがデフォルトのマッピングだと思いました。修正されました。
答え3
一般的な検索と置換オプションと同様に、vim
確認オプションを渡して使用できますgc
。
たとえば、単語を置き換えるには、次の行を追加しますfoo
。bar
:%s/foo/bar/gc
したがって、単語が見つかるたびにfoo
その単語を置き換えるかどうかを確認するように求められますbar
。押すと交換され、それ以外の場合はy
交換されn
ません。
答え4
vim
コマンドを繰り返す頻度を最初に入力すると、複数のコマンドを繰り返すことができます。これはコマンドにも当てはまりますn
。
たとえば、9番目の発生foo
タイプを変更します。
/foo
Enter 最初の位置に移動するにはEnterを押します。foo
8n
次の位置に8回ジャンプするには、入力してください。それからあなたは9番目に表示されますcw
単語を変更して新しい単語を入力するには、入力してください。
の説明に従って、手順2と3を続行できます。この回答