いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

プログラミング時に便利なvimのビジュアルモードコマンド (I, A, X, c)

f:id:gsf_zero1:20211217140202g:plain

概要

よく忘れるのでここにメモメモ。。。知っているとちょっと楽できます。

頻繁に使うわけではないのですが、たまに以下のような作業が必要なときがあります。

  • 指定範囲の各ステートメントの後ろに ; を付けたい
  • 指定範囲を全部コメントアウトしたい
  • 指定範囲のコメントアウトを全部外したい

どのエディタでも出来ることなのですが、vimだとビジュアルモードとオペレーションコマンドの組み合わせでいい感じにできます。

指定範囲の各ステートメントの後ろに ; を付けたい

javascript で、コーディング規約上でセミコロンが必須の場合って結構あります。

文法上、行末に自動でセミコロンを入れてくれるので付けてなくてもエラーにはなりません。

ですが、プロジェクトとして必須にしてる場合は対応が必要ですね。

例えば、以下のようなコードがあったとします。

f:id:gsf_zero1:20220213141951p:plain

各行の末尾に移動して ; を一つずつ打っていってもなんの問題もないですが、以下のようにもできます。

まず、ブロック志向のビジュアルモードに Ctrl+V で入り、必要な行を選択します。

f:id:gsf_zero1:20220213142414p:plain

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

f:id:gsf_zero1:20220213142527p:plain

この状態で、A を押します。ノーマルモードの a と同じ意味となります。

んで、必要な文字を打ちます。今回だと ; ですね。

そうするとこうなります。

f:id:gsf_zero1:20220213142705p:plain

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

f:id:gsf_zero1:20220213142746p:plain

こうなります。

指定範囲を全部コメントアウトしたい

今度は、行頭に何かを入れたいので I を使います。ノーマルモードの i と同じ意味となります。

まず、ブロック志向のビジュアルモード (Ctrl-V) で、対象となる行を選択します。

f:id:gsf_zero1:20220213143045p:plain

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

f:id:gsf_zero1:20220213143145p:plain

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

f:id:gsf_zero1:20220213143314p:plain

となります。

指定範囲のコメントアウトを全部外したい

今度は、文字を削除したいので X を使います。ノーマルモードの x と同じ意味となります。

削除したい箇所をブロック志向のビジュアルモード (Ctrl-V) で選択します。

f:id:gsf_zero1:20220213143659p:plain

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

f:id:gsf_zero1:20220213143737p:plain

となります。A とか I と違って、Escでノーマルモードに戻らなくても即反映されます。そういうものと覚えましょう。

参考情報


過去の記事については、以下のページからご参照下さい。

  • いろいろ備忘録日記まとめ

devlights.github.io

サンプルコードは、以下の場所で公開しています。

  • いろいろ備忘録日記サンプルソース置き場

github.com

github.com

github.com