Vim – マクロを記録して編集・実行する方法【削除する方法も】

midSun31midSun31
IT・デジタル

同じ動作を何度も繰り返す作業って面倒くさいですよね。何とか自動化できないかと考えるものだと思います。Vimエディタのマクロは、繰り返し作業の自動化に大いに役に立ってくれる機能です。

この記事では、Vimエディタのマクロ機能の使い方について解説します。マクロの記録から編集・実行、削除方法まで紹介するので、参考にしてみて下さい。

Vimエディタのバージョンは8.1を利用しています。

マクロの記録方法

Vimでマクロの記録を開始するには、次の手順で操作します。

  1. ノーマルモードの状態で、「q」キーと「任意のアルファベット1文字」を入力します。
  2. マクロの記録が開始します。記録中はステータス行に「記録中」と表示されています。
  3. マクロに記憶する操作を行います。
  4. もう一度「q」キーを押すと記録を終了します。「記録中」の文字が消えます。

以上で、マクロを記録して作成することができます。

記録例

例として、カーソル行の数値を1ずつ増加させるマクロを記録します。

  1. 「qa」キーを入力してマクロの記録を開始します。
  2. 記録したい手順を実行します。例では次の操作を記憶しました。
    • 「yy」キーを入力して1行コピー
    • 「p」キーを入力してカーソルの下の行にペースト
    • 「3l」キーを入力して右に3文字分移動する
    • 「Ctrl」+「a」キーにより変数名の数値を1だけ増加させる
  3. 「q」キーを入力してマクロの記録を終了します。

以上の手順で、マクロaにカーソル行の数値を1ずつ増加させるマクロが記録できました。

マクロの閲覧方法

記録したマクロを閲覧するには、次のコマンドを実行します。

:reg 任意のアルファベット

「:reg a」と入力すると「qa」コマンドで記録したマクロを閲覧することができます。

マクロの編集方法

記録したマクロは、以下の方法で編集することができます。

  1. 「:let」コマンドを以下のように入力します。
    :let @任意のアルファベット='
    • 「:let」コマンドはVim上で変数を定義するコマンドで、マクロが入っている変数の中身を書き換えようとしています。
    • 任意のアルファベットには、記録時に利用したアルファベット1文字を入力します。
  2. 以下のキーを入力して、マクロの記録内容を呼び出します。
    • 「Ctrl」+「r」+「記録に利用したアルファベット」
  3. マクロで記録した内容がペーストされます。
  4. 修正したい部分を書き換えます。最後に書き換えた内容をシングルクォートで閉じます。
    :let @a='マクロの内容'
    • 例では、1ではなく2増加するように書き換えてみます。
  5. 「Enter」キーを入力して編集内容を保存します。
  6. 「:reg」コマンドで確認すると、マクロの内容が変更されていることがわかります。

マクロの実行方法

記録したマクロを実行するには、次のコマンドを実行します。

@マクロを記録した任意のアルファベット
  • 「@@」と連続で入力すると、直前に呼び出されたマクロの実行を繰り返すことができます。
  • 「10@a」のように数値を指定して繰り返し実行することもできます。

作成した例のマクロを実行すると、以下のように数字を増加した文字列が自動入力できました。

マクロの削除方法

記録したマクロを削除するには、マクロの編集と同じ方法でマクロが記録されている「アルファベット」の変数を何もない状態にします。

以下のコマンドを実行します。

:let @アルファベット=''

Vimエディタを再度起動して「:reg」コマンドで確認すると、マクロが残っていないことがわかります。

以上、Vimエディタでマクロを記録して編集・実行する方法でした。

IT・デジタル
Howpon[ハウポン]

コメント