visualモードで選択した範囲に含まれる「行」ではなく、選択した「テキスト」にだけ置換処理を適用する。
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
Recent Comments
ありがとうございます!
http://nanasi.jp/articles/howto/editing/visualcursor-endtoend.html · 7 years ago
知りませんでした。有難うございました。
http://nanasi.jp/articles/howto/file/open-with-format.html · 9 years ago
<c-f>1ページ分、下にスクロールする<c-b>1ページ分、上にスクロールする
どっちも逆です。
http://nanasi.jp/articles/howto/user-manual/user-manual-motion.html · 10 years ago
set 使用時に : で閉じるのを忘れて右往左往してました。
http://nanasi.jp/articles/howto/file/modeline.html · 10 years ago
やっぱり日本語の方が早いっす。
http://nanasi.jp/articles/howto/help/help_ja.html · 11 years ago