パーソナルツール

検索でマッチしたテキストに対して、置換処理を実行する。

作者: 小見 拓 最終変更 2012年01月08日 11時58分

まず検索を実行して検索にマッチするテキストを確認し、 そのテキストに対して置換処理を実行するなら「<C-r> /」を使うと良いでしょう。 入力モード、コマンドラインモードで「<C-r> /」と入力すると、最後に検索に使用した検索ワードを挿入できます。 「/」「?」を使うと、インクリメンタルサーチで細かな正規表現の結果を確認しながら検索語を作れるので、 私はよく、この方法を使用しています。 (Windows, Mac)

概要

まず検索を実行して検索にマッチするテキストを確認し、 そのテキストに対して置換処理を実行するなら Control-r / を使うと良いでしょう。
入力モード、コマンドラインモードで Control-r / と入力すると、最後に検索に使用した検索ワードを挿入できます。
/ ? を使うと、インクリメンタルサーチで細かな正規表現の結果を確認しながら検索語を作れるので、 私はよく、この方法を使用しています。

<C-r>

「<C-r>」は、
Control キーを押しながら r キーを押す。
というように入力してください。

具体的な作業手順

置換対象のテキストを確認

まず、vimエディタの検索を実行し、置換するテキストを確認します。
/? の後に、検索条件を入力します。)

検索条件の入力

置換範囲と、置換処理のコマンドを指定

次に、置換の範囲と、置換処理を指定します。

:%s/
検索範囲、置換処理コマンド入力

「<C-r>」を使用して、最後に使用した検索ワードを挿入

最後に使用した検索ワードは、入力モード、コマンドラインモードで

Control-r /

と入力すると呼び出せるので、
この Control-r / を使用して、検索ワードを置換対象テキストとして挿入します。

最後に入力した検索ワードを置換対象として入力

置換処理の実行

最後に、置換後のテキストを入力してから、置換処理を Enter キーで実行します。
(置換処理の残りのコマンドを入力)

置換処理の残りのコマンド入力

同時に覚えておくと良いこと

入力モード、コマンドラインモードで Control-r / と入力すると最後に使用した検索ワードを挿入できるのは、
最後に使用した検索ワードは / という名前のレジスタに格納されており、 Control-r で、そのレジスタの中身を貼り付けられるからです。

Control-r を使用すると検索ワードの他にも、さまざまなテキストを挿入できます。
下の表は、 Control-r で挿入できるデータのうち、覚えておくと便利なものです。

<C-r>で挿入できるレジスタのデータ
コマンド 説明
<C-r> " 最後にdelete、yankしたテキスト
<C-r> * クリップボードに格納されたテキスト
<C-r> / 最後に使用した検索ワード
<C-r> : 最後に入力したvimエディタコマンド
<C-r> % 今開いているファイルのファイル名
<C-r> # 直前に開いていたファイルのファイル名
ドキュメントアクション
コメント
blog comments powered by Disqus