コードを編集するとき、しばしば私はビジュアルモードでブロックを選択し、ブロックの上で検索と置換を行います。しかし、変更を加えるとビジュアルモードから抜けてしまいます。同じ選択範囲の上で新しい検索と置換を行うにはどうすればいいのでしょうか?
184 None 2010-12-10
最後に選択したビジュアルエリアをgv
で再選択することができます
271 Heptite 2010-12-10
gv
が一番速い方法ですが (最後の選択範囲を使う)、安定した保存選択範囲 (あるいは複数) が欲しい場合は、いつでもマクロを作成することができます
現在のメソッドの選択範囲を保存したいとします。と入力することで、メソッド全体を選択するマクロを作成することができます
q //start recording
a //use register a
25G //Go to line 25
V //visual-line mode
35G //Go to line 35
q // stop recording
そして、@a
(レジスタaでマクロを実行) と入力することで、選択範囲を取り戻すことができます。これを任意のレジスタ、行、行の一部でも繰り返してください。ファイルに変更を加えれば選択範囲も変わることは明らかなので、 行番号を「ハードコーディング」するのではなくマークを使うことを検討してみてはいかがでしょうか
17 AlexMA 2013-03-14
gv
は最後の選択範囲を回復するのにとても有効です。しかし、ときにはもう少し多くのものが必要になることもあります
もしもっと永続的な記録が必要な場合は、このプラグインを見てみてください、私たちは現在GitHub上で作業しています
VisualMarksを使うと、m
でファイル内の特定の場所を保存したりマークしたりするのと同じように、視覚的に選択された領域を保存したり復元したりすることができます。インストール後、デフォルトのオプションで使用します
ma
ビジュアルモードで現在の選択範囲を a
マークに保存するには
<a
を通常モードにすると、この選択に戻ることができます
6 iago-lito ‘considering leaving 2015-10-18
さよならをハローに置き換えたいときに、以下のコードが選択されていたとします
public static void main(String[] args){
System.out.println("Goodbye World");
}
:s/Goodbye/Hello/
と入力すると、vimはGoodbye
のインスタンスをすべてHello
に置き換えます
単純にvimの正規表現とビジュアルモードの選択を組み合わせたものです。選択すると、'<,'>
をオートフィルしてくれるはずです
1 Scott Nguyen 2010-12-10
ヴィムは最後の選択を覚えています
ビジュアルモードで : を入力すると、自動で : ‘<,’> を入力してくれるので、コマンドを入力し続けることができます
:'<,'>s/old/new/ # (Replace pattern in selected area)
同じビジュアル選択範囲で別のコマンドを実行したい場合は、古いコマンドを履歴から呼び出して編集することができます
:'<,>'s/abc/xyz/ # (This will run the replace command on the same selection area)
マッチパターンをサポートしている replace コマンドや他のコマンドに、前の選択範囲を使うように指示するもう一つの方法は、パターンに \%V を追加することです
:s/\%Vabc/xyz/ # (Same as above)
詳しくは、 :help \%V. をご覧ください
前の選択範囲を再選択するには gv を使用します
1 Denis Khoroshev 2020-03-27