Hack #117: 置換行為を繰り返す
Posted at 2010/01/16ツイート
問題
:substitute
(:s
)による置換処理は頻繁に使います。
バッファ全体を対象にする場合は:%s/foo/bar/g
などでできますし、
特定範囲のみを対象にする場合はVisual modeで選択しておいて
:s/foo/bar/g
でできます。
では飛び飛びの場所で置換を行なう場合はどうでしょうか。
例えばソースコード中の特定の関数3つに対して置換を行なうとしましょう。
この場合は3箇所それぞれを対象として置換を実行することになりますが、
毎回
:s/foo/bar/g
のような長ったらしいコマンドを入力したくはありません。
<Up>/<Down>
でコマンドの入力履歴を辿って実行してもいいのですが、
これらのキーは概して遠い位置にあるため押下が面倒ですし、
押し易いキーバインドを設定することも面倒です。
どうにかして最小の手数で置換行為を繰り返せないでしょうか。
解決方法
以下のコマンドを実行します:
:s
通常、:s
には検索パターンと置換文字列を指定しますが、
それらを省略した場合は最後に実行された
:s
と同じ検索パターンと置換文字列で置換が行なわれます。
なお:s
では
:s/foo/bar/<em>gc
などのフラグは無視されます。
フラグまで同一にする場合は
:s
の代わりに
:&&
を使います。
また1行だけ繰り返す場合には:s
の代わりに
&
を使うこともできます。
参考資料
kanaもどる
blog comments powered by Disqus