4つの行があります。
foo ["bar"]
baz ["k"]
daskhfkjhadsfj ["askfjhfjdsh"]
dfjhafkjhfha ["skkksks"]
単語をインポートしてレジスタにインポートするマクロを作成したいのですが、レジスタを増やすようにしたいと思います。たとえば、
f"l"ayf"j0
f"l"byf"j0
f"l"cyf"j0
f"l"dyf"j0
後で貼り付けられるようにレジスタが自動的にインクリメントされるようにこれを行う方法はありますか?
jjjj
f"ap
j
f"bp
私はレジスタ番号とyiを知っています。 - 私はそれをアルファレジスタと一緒に使用したいと思います。また、私が選択したレジスタがクラッシュする可能性があることも知っています。あなたは私のマクロがzとして記録すると仮定することができ、私は使用されたことを示すためにafを使用したいと思います登録します。
マクロを使用してこれを行う方法を提案できますか?
答え1
そしてㅏマクロ?おそらく。そして二つもちろんマクロです!
まず、いくつかの設定を行います。
:set nrformats=alpha
:let @y="\"a"
それでは、クレイジーVim登録ウィザードを見てみましょう。
qzf"l@yyf"Go
Esc"yp
^A0"yy$dd
^Oj0q
戦略は、あるマクロ(y
)を使用して次にどのレジスタが使用されるかを追跡し、別のマクロを使用してそれを変更することです。
f"l@yyf"
あなたがいただいたオリジナルなので、@y
代わりに使用しました"a
。直接入力するのではなく、y
マクロを使用して入力します。"a
Go
Esc"yp
ファイルの終わりに移動してそこに新しい行を追加し、レジスタの内容を貼り付けますy
。- ^Aカーソルの下に文字を追加します。そうだったら
a
今だろうb
。nrformats=alpha
文字にも機能するようにあらかじめ設定しておきました。 0"yy$
更新されたテキストをレジスタに戻しますy
。dd
^O出発船を空にして以前にあった場所に戻ってj0
それはあなたの残りの部分です。