
概要
よく忘れるのでここにメモメモ。。。知っているとちょっと楽できます。
頻繁に使うわけではないのですが、たまに以下のような作業が必要なときがあります。
- 指定範囲の各ステートメントの後ろに ; を付けたい
- 指定範囲を全部コメントアウトしたい
- 指定範囲のコメントアウトを全部外したい
どのエディタでも出来ることなのですが、vimだとビジュアルモードとオペレーションコマンドの組み合わせでいい感じにできます。
指定範囲の各ステートメントの後ろに ; を付けたい
javascript で、コーディング規約上でセミコロンが必須の場合って結構あります。
文法上、行末に自動でセミコロンを入れてくれるので付けてなくてもエラーにはなりません。
ですが、プロジェクトとして必須にしてる場合は対応が必要ですね。
例えば、以下のようなコードがあったとします。

各行の末尾に移動して ; を一つずつ打っていってもなんの問題もないですが、以下のようにもできます。
まず、ブロック志向のビジュアルモードに Ctrl+V で入り、必要な行を選択します。

んで、その後に $ を押して行末まで選択状態にします。

この状態で、A を押します。ノーマルモードの a と同じ意味となります。
んで、必要な文字を打ちます。今回だと ; ですね。
そうするとこうなります。

最初の行しか入力されていません。ですが、ここからEscを押してノーマルモードに戻ると

こうなります。
指定範囲を全部コメントアウトしたい
今度は、行頭に何かを入れたいので I を使います。ノーマルモードの i と同じ意味となります。
まず、ブロック志向のビジュアルモード (Ctrl-V) で、対象となる行を選択します。

この状態で I を押します。そうすると入力できる状態になるので // を入力します。

先頭の行だけ入力されますが、その後にEscを押すと

となります。
指定範囲のコメントアウトを全部外したい
今度は、文字を削除したいので X を使います。ノーマルモードの x と同じ意味となります。
削除したい箇所をブロック志向のビジュアルモード (Ctrl-V) で選択します。

その後に X を押します。そうすると

となります。A とか I と違って、Escでノーマルモードに戻らなくても即反映されます。そういうものと覚えましょう。
参考情報
過去の記事については、以下のページからご参照下さい。
- いろいろ備忘録日記まとめ
サンプルコードは、以下の場所で公開しています。
- いろいろ備忘録日記サンプルソース置き場