キーの一連の操作を記録して実行できる機能(マクロのようなもの)
記録を開始する
-
q
+ ${0-9a-zA-Z"} : 記録状態になりタイプした文字をレジスタに記録する
記録を終了する
-
q
: 記録状態を解除する(記録の終了)
記録を実行する
-
@
+ ${0-9a-z".=*+} : レジスタの内容を実行する。3@a
のように前に数字をつけることで、複数回連続して実行もできる
注意点!!
レジスタに登録するため、ヤンクなどで同じレジスタを使用すると上書きされてしまう。
どのレジスタを何に使うかなどは考えながら使おう
【使用例】
各行に同じ操作を行いたい時
foo #<=ここの行頭にカーソル(normalモード)
bar
baz
qux
qa
: aレジスタでレコーディング開始
0
: 行頭に移動
v
: ビジュアルモード
e
: 単語の末に移動
y
: ヤンク
<S-i>
: 行頭から挿入モード
def
: 文字を挿入
<C-[
: 挿入モードを抜ける
o
: 1行追加し挿入モード
p "
: 文字を挿入
<C-r>"
: 無名レジスタの内容を貼り付け
<C-[
: 挿入モードを抜ける
end
: 文字の挿入
<C-[
: 挿入モードを抜ける
q
: レコーディング終了
def foo
p "foo"
end #<=カーソルここの行末
bar
baz
qux
j
: 次の行に移動
@a
: aレジスタに記録した内容を実行
def foo
p "foo"
end
def bar
p "bar"
end #<=カーソルここの行末
baz
qux
j
: 次の行に移動
@@
: 前回と同じ記録を実行
j
: 次の行に移動
@@
: 前回と同じ記録を実行
def foo
p "foo"
end
def bar
p "bar"
end
def baz
p "baz"
end
def qux
p "qux"
end
前回:【vimめも】 5. insertモード・visualモードの基本的な操作
次回:【vimめも】 7. コマンドモード