LoginSignup
9
12

More than 5 years have passed since last update.

【vimめも】 6. 複雑な繰り返し処理

Last updated at Posted at 2018-03-18

キーの一連の操作を記録して実行できる機能(マクロのようなもの)

記録を開始する

  • 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. コマンドモード

9
12
2

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
9
12