ビジュアルモードの開始・終了
ビジュアルモードは、Vim においてテキストの範囲選択を行うためのモードです。 ノーマルモードで下記のようなコマンドを入力することでビジュアルモードに入ることができます。
入力 | 説明 |
---|---|
v | ビジュアルモード(文字単位) |
Shift-v | ビジュアルラインモード(行単位) |
Ctrl-v | ビジュアルブロックモード(矩形) |
ビジュアルモードを抜けてノーマルモードに戻るには、Esc
を押すか、何かコマンドを実行します(d
で削除するなど)。
コマンドを実行した場合は、選択した範囲に対してコマンドが適用されます。
ビジュアルモードの選択範囲を拡張する
カーソル移動で拡張する
ビジュアルモードに入った後で o
を入力することで、カーソル位置を選択領域の先頭、末尾へ交互に移動することができます。
この状態でカーソルを動かすと、選択領域を自在に伸縮させることができます。
ルールに応じて拡張する
ビジュアルモードに入った後で、下記のような操作を行うと、ルールに従って選択範囲を拡張することができます。
入力 | 説明 |
---|---|
ip | カーソル位置の段落全体を選択 |
ap | カーソル位置の段落全体を選択(後続の空行も含めて選択) |
iw | カーソル位置の単語全体を選択 |
aw | カーソル位置の単語全体を選択(後続のスペースも含めて選択) |
i( | 括弧 () に囲まれた領域を選択 |
a( | 括弧 () に囲まれた領域を選択(括弧も含めて選択) |
i{ | 括弧 {} に囲まれた領域を選択 |
a{ | 括弧 {} に囲まれた領域を選択(括弧も含めて選択) |
i[ | 括弧 [] に囲まれた領域を選択 |
a[ | 括弧 [] に囲まれた領域を選択(括弧も含めて選択) |
i< | 括弧 <> に囲まれた領域を選択 |
a< | 括弧 <> に囲まれた領域を選択(括弧を含めて選択) |
例えば、ビジュアルモードで段落全体(空行で区切られた連続する行)を一気に選択するには、その段落内にカーソルがある状態で ip
と入力します。
ノーマルモードから段落全体を選択状態にするには vip
と入力すればよいことになります(上のデモアニメを参照)。
「段落選択はビップ」と覚えます。
段落全体を操作対象とする ip
は便利なので、是非覚えておきましょう。
他にも下記のようなシーケンスで使用することができます。
dip "段落全体を削除する (vip → d としても同様)
yip "段落全体をヤンク(コピー)する (vip → y としても同様)
ビジュアルモードに関するヘルプ
ビジュアルモードで使用できるコマンドのヘルプを表示するには、そのコマンドのプレフィックスとして v_
を付けて :help
コマンドを実行します(参考: Vim の help コマンドの使い方)。
同様に、Ctrl-v
で入ることのできるビジュアルブロックモードのコマンドのヘルプを表示するには、プレフィックスとして v_b_
を付けます。
複数行に同じテキストを挿入する
Ctrl-v
のビジュアルブロックモードで複数行を選択し、Shift-i
でテキストを入力すると、その範囲に同じテキストを一気に挿入できます(2 行目以降には Esc
を押した段階で挿入されます)。
上記の例では、Java コードの複数行をまとめてコメントアウトしています。
逆に選択範囲を削除するには、ビジュアルモードで選択した後で、x
あるいは d
を入力するだけで OK です。