保存vimマクロ


あなたが私のような場合、あなたは純粋な栄光であるマクロまたは2を作成しました.Vimを持つほとんどのものと同様に、それを理解すると簡単です.

マクロの作成
Vimで行うことを学ぶ最も初期のものの1つは、マクロを作成することです.
マクロを作成するには、q マクロを保存したい文字が続きます.
qq

Note: a common throw-away macro register is q because it's easy to hit qq from normal mode to start recording.



マクロの再生
マクロは@ 以下のマクロを保存した文字が続きます.
@q

レジスタ
レジスタは一部のテキストの値に1文字キーマッピング以外の何もありません.あなたとしてyank , delete , またはVIMでマクロを作成すると、自動的にこれらのレジスタにテキストを格納します.
ときにヒットp ペーストは、単にデフォルトのレジスタに貼り付けている.また、打撃によって他のレジスタに貼り付けることができます"qp ここでqはペーストしたいレジスタです.

リスティングレジスタ
各レジスタに格納されているものを見るには:reg コマンド.これは私が長い間使用している強力なツールです.それは本当にあなたが各レジスタに持っているものを参照してくださいに最適です.
:reg

マクロをショートカットにする
ちょっと魔法
それを簡単にする魔法のショートカットは、そのコントロール<C-R> その後、レジスタモードでは、コマンドモードを含めて、現在どこに登録されます.
:nnoremap {binding} <C-R>{register}

マクロの編集
そのマクロ圧力のいくらかを軽減する
今では、マクロは単にレジスタに置かれたテキストの文字列であることを理解しています.
まず、レジスタの内容を現在の作業バッファにペーストします.
<C-R>q
次に、マクロを編集し、そのバッファーに戻して削除します.
"qdd
マクロに複数の行があれば、必要があるかもしれません.
"qdj
"qd2j

再帰的にする
マクロを編集する1つのユースケースは、何度か試してみると再帰的になるかもしれません.マクロは、単に実行後に自分自身を呼び出すことによって再帰的になることができます.
マクロにペーストします.
<C-R>q
行の最後に移動し、@q もう一度呼び出される.
A @q
置換するq 更新されたマクロに登録します.
"qd

Note: don't use this in a shortcut as the macro may change. If you want to call the keybinding again, you will have to use noremap instead of nnoremap, but be careful as recursive remaps can be dangerous.



回収する
" record a macro
q{register}

" play a macro
@{register}

" list registers
:reg

" map a macro to a keyboard shortcut
:nnoremap {binding} <C-R>{register}

" edit a macro
<C-R>{register}
"{register}dd

" make a macro recursive
<C-R>{register}A@q<esc>"{register}dd