47
30

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

vim マクロの使い方

Posted at

vim マクロ

vimのドットコマンドはちょっとした変更を繰り返すのに使えました。

[vim . ドットコマンドの使い方]
(https://qiita.com/satokibi/items/a23a9bb0b68326ee526a)

しかし、もっとたくさんの変更を繰り返す場合にはドットコマンドでは足りないです。

そこで、マクロを使うことによっていくつもキーストロークを保存し、繰り返すことができます。

使い方

マクロの記録

qキー + 任意のアルファベット(数字も?)」 でマクロの記録を開始します。
ステータス行に「recording」(「記録中」)と表示されたら、記録が開始しています。

記録を終了するにはもう一度qキーを押します。

行末にセミコロン、行頭にvar をつけるマクロを記録してみます。

コマンド 説明
qa マクロの記録を開始
A;<Esc> 行末にセミコロンを挿入
Ivar <Esc> 行頭にvar の挿入
q 記録の終了

bbb.gif

記録の確認

:reg で記録されているマクロの確認ができます。

:reg a とするとqa で記録したものが確認できます。

g.gif

見え辛いですね、、

:reg a
--- レジスタ ---
"a   A;^[Ivar ^[

<Esc>キーは^[で表現されています

マクロの実行

@キー + 記録したアルファベット」でマクロを実行する。
@@ キーで直前に呼び出されたマクロを繰り返します。

行末にセミコロン、行頭にvar をつけるマクロの実行。

コマンド 説明
j 1行下に移動
@a マクロの実行
j 1行下に移動
@@ 直前に呼び出したマクロの実行

aaaaa.gif

インクリメントするマクロ

コマンド 説明
qa マクロの記録を開始
yy 1行コピー
P カーソルの下の行にペースト
<Ctrl-a> インクリメント
q 記録の終了
--- ---
@a マクロの実行
@@ 直前に呼び出したマクロの実行

aaaaaaa.gif

まとめ

コマンド 説明
q{任意のアルファベット} マクロの記録を開始
q 記録の終了
@{記録したアルファベット} マクロの実行
@@ 直前に呼び出したマクロの実行

参考

47
30
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
47
30

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?