回答:
あなたが求めるものとは正確には違いますが、あなたはそれを行うことができます:
:s/foo/bar/g
その後:
:s//baz/g
:s
検索したパターンを使用すると検索レジスタに保存されるので、それを利用できます。あなたはそれで見ることができます:reg /
。
進行中の作業:次の方法でワークフローをスピードアップできます。
nnoremap && :s<UP><C-F>F/cT/
そしてそれを次のように使用します:
:s/foo/bar/g
その後
&&baz<CR>
分解:
nnoremap && " define a new mapping
:s<UP> " get the last :s command in the history
<C-F> " use this command in the cmdline window
F/ " go back to the last /
cT/ " change back up to the last /
いくつかのメモ:
(私がそれを改善できるかどうか私に知らせてください)。
いくつかの読書:
:h cmdline-window
:h c_CTRL-F
@ nobe4の回答に加えて、Damian Conwayには、検索と置換アクションを高速化する2つの非常に興味深いマッピングがあります。彼らはこれから私が完全に読む価値のあるインタビューの方法を教えてくれます。
彼を引用するには:
[...]私は永遠にグローバルな検索と置換(つまり
:%s/X/Y/g<CR>
)をしていることがわかったので、決して使用されなかった(自分が)S
コマンドを盗むことで、繰り返し入力を排除しました。
nmap S :%s//g<LEFT><LEFT>
次のように入力するだけです:SX / Y
しかし、その後、パターンの/検索をどのくらいの頻度で行ったかに気付き始め、一致を調べた後、それらすべてをグローバルに置き換えたいと考えました。より厄介な繰り返しであったSマッピングを使用した場合でも、最初に検索を実行します。/pattern次に置換を実行します。Spattern/ replacementしたがって、(これも私が使用することはない)Mコマンドを盗みました。
nmap <expr> M ':%s/' . @/ . '//g<LEFT><LEFT>'
今はそれだけです:検索を実行します:/ pattern次にすべての一致を置き換えます:Mreplacement
あなたの質問に答えるために、私はあなたがこのようなもののために最初のマッピングを少し修正することができると思います:
nmap S :s///g<LEFT><LEFT>
このようにして、最初に置換:s/foo/bar/g
を行い、次の行に移動してヒットするS
と、カーソル:s//|/g
がどこに|
あるのか、新しい置換を入力できます。