パーソナルツール

visualモードで選択した範囲に含まれる「行」ではなく、選択した「テキスト」にだけ置換処理を適用する。

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

visualモードで選択した範囲に含まれる「行」ではなく、 visualモードで選択した「テキスト」にだけ置換処理を行いたいなら、 アトム「\%V」が役に立ちます。 アトム「\%V」を検索の条件で使用すると、visualモードで選択した範囲を指定できるのです。 (Windows, Mac)

概要

visualモードで選択した範囲に含まれる「行」ではなく、
visualモードで選択した「テキスト」にだけ置換処理を行いたいなら、
アトム「\%V」が役に立ちます。
アトム「\%V」を検索の条件で使用すると、visualモードで選択した範囲を指定できるのです。

アトム「\%V」を使った置換処理

選択した範囲の「行」に対する置換処理

visualモードで範囲を選択した後、次のように置換処理のコマンドを実行すると、
visualモードで選択した範囲に含まれる「行」に対して置換処理を実行します。

" 選択した範囲に含まれる「行」の「b」を「X」に置換
:'<,'>:s/b/X/g
選択した範囲の行で置換処理実行

↓(選択の範囲外も「行」に含まれていれば、置換の対象となる)

選択した範囲の行で置換処理実行

選択した範囲の「テキスト」に対する置換処理

しかし、アトム「\%V」を使用して、次のように置換処理のコマンドを実行すると、
visualモードで選択した範囲の「テキスト」に対してだけ、置換処理を実行できます。

" 選択した範囲の「テキスト」に含まれる「b」を「X」に置換
:'<,'>:s/\%Vb/X/g
選択したテキストの範囲で置換処理実行

↓(選択した範囲にだけ、置換処理が実行される。)

選択したテキストの範囲で置換処理実行

↓(コマンド部分をズーム)

コマンドのズームアップ

Note

それぞれの置換処理の実行結果に注目してください。
違いは、行のテキストに対して置換処理が実行されるか、 選択したテキストに対して置換処理を実行するか、です。

選択した範囲の行で置換処理実行

↓(アトム「\%V」を使うと)

選択したテキストの範囲で置換処理実行

Note

次のような方法もあります。
一度、visualモードの選択エリアを解除してから、次のようにコマンドを実行。
すると、直前まで選択していた「テキスト」に、置換処理が実行されます。

" 選択した範囲の「テキスト」に含まれる「abcd」を「ABCD」に置換
:%s/\%Vabcd/ABCD/g
ドキュメントアクション
コメント
blog comments powered by Disqus