vimのcomplex repeat (複雑な繰り返し)機能について
新しいプロジェクトでviを使うのですが、久しぶりで(((( ;゚д゚))))アワワワワしてます。
で、知らなかった機能。viというかvimの機能かな。
コマンドモードでqコマンドで一連のキー操作をレジスタに保存。
それを@コマンドで実行することができる。
これcomplex repeatって機能らしい。
ex.) qa (レジスタaに記録) 3G(3行目へ) dd(行削除) G(最終行へ) yy(コピー) 2p(コピーした行を2行貼り付け) $(行末) a(カーソルの次から追加できる入力モードへ) (直接編集) ESC(入力モードをぬける) q(記録修了)
これで@aと打てばレジスタに記録した動作
「3行目を削除して、最終行をコピーして下に2つ貼り付け、
行末を編集」までをやってくれる。
ちなみにqbとすれば実行するときは@bとなる。
これの何が便利かと言ったら複数ファイルを開いて
他のファイルでも同じ作業をしたいときホイホイと直せる
使い方としては
vi file1 file2 file3 (qコマンドで記録。) :wn (同じ作業を繰り返す) :q
これで最初の記録して編集したファイルが間違っていなければ
ヒューマンエラーなくファイルを編集できる。
もちろんgrepコマンドで確認したほうが良いだろうけど。
また時間あったら
Vim documentation: help
みないとな。