Vim/複数行に文字を一気に挿入する

Vim/複数行に文字を一気に挿入する

バージョンと製造年月日

  • 2011-06-03
  • Windows版gVim7.3Kaoriya版

矩形ビジュアルモードを使う

矩形ビジュアルモードを使うと複数行に文字列を一括挿入できる。

行頭に文字列を一括挿入

行頭にスラッシュを二個入れてコメントアウトしようと思ったら

var hoge = function(aaa){
    alert(aaa);
    alert(aaa + "ほげ");
    alert(aaa + "ぴよ");
    alert(aaa + "ふが");
};

まずノーマルモードで

    alert(aaa + "ほげ");

の行の行頭まで移動し、ctrl+vで矩形ビジュアルモードにする。 そこからjを二回押して

[]    alert(aaa + "ほげ");
[]    alert(aaa + "ぴよ");
[]    alert(aaa + "ふが");

この三行の行頭1文字分が選択されるようにする。※括弧で表現したような感じ。

そこで大文字のIを押すと特殊な挿入モードに変わるので挿入したい文字列を普通に入力する。 今はコメントアウトしたいのでスラッシュを二本入力する。

その後escでノーマルモードに抜けると選択した全部の行にスラッシュが挿入される。

Iは選択矩形範囲の左側(行頭方向)に文字列を挿入することができる。これを応用すると行頭だけでなく、 任意の位置に揃えた文字列を挿入することができるようになる

逆に選択矩形範囲の右側に文字を挿入したいときはAを使う

行末に文字列を一括挿入

矩形ビジュアルモード時に$で行末まで選択できる(行末が揃ってなくてもそれに合わせて選択できる)ので、 これで選択して右側挿入のAを使えば行末挿入できる。

var hoge = function(aaa){
    alert(aaa);
    alert(aaa + "ほげ")
    alert(aaa + "ぴよよ")
    alert(aaa + "ふががが")
};

矩形ビジュアルに入って

var hoge = function(aaa){
    alert(aaa);
[]  alert(aaa + "ほげ")
    alert(aaa + "ぴよよ")
    alert(aaa + "ふががが")
};

$

var hoge = function(aaa){
    alert(aaa);
[   alert(aaa + "ほげ")]
    alert(aaa + "ぴよよ")
    alert(aaa + "ふががが")
};

jj

var hoge = function(aaa){
    alert(aaa);
[   alert(aaa + "ほげ")]
[   alert(aaa + "ぴよよ")]
[   alert(aaa + "ふががが")]
};

A

var hoge = function(aaa){
    alert(aaa);
    alert(aaa + "ほげ")|
    alert(aaa + "ぴよよ")
    alert(aaa + "ふががが")
};

;

var hoge = function(aaa){
    alert(aaa);
    alert(aaa + "ほげ");|
    alert(aaa + "ぴよよ")
    alert(aaa + "ふががが")
};

esc

var hoge = function(aaa){
    alert(aaa);
    alert(aaa + "ほげ");
    alert(aaa + "ぴよよ");
    alert(aaa + "ふががが");
};

選択範囲を消して挿入

↑と同様の操作でcを使うと選択範囲が消えて特殊挿入モードになる

選択範囲を全部同じ文字で埋める

矩形ビジュアルで選択し、r。埋めたい文字を入力すると埋まる。

まとめ

行頭(中)挿入矩形v → I(A) → タイプ → esc
行末挿入矩形v → $ → A → タイプ → esc
消して挿入矩形v → c → タイプ → esc
ブロック範囲を同じ文字で埋め矩形v → r → タイプ

タグ

editor/vim/insert_char_to_multi_line_at_once.txt · 最終更新: 2017-09-27 10:48 by ore