マクロをマーカーまで動作させる方法はありますか?私がするかどうか知っています5@a
私のマクロは5行で動作します。例:
set marker with `mc`
record a macro with `qa`
... now what?
明らかに'c@a
カーソルをcのマーカーに移動するだけです。バッファを試しました、"b'c
、しかしそれはただマーカーに行きます。私はおそらく非常に基本的なものが欠けているか、間違った場所を探しているだけです。
あなたはこれを試すかもしれません:
:.,'c normal @a
これは、 "ranged" :normal
command を使用して、現在の行から下に向かって各行の最初の列にカーソルを連続して配置して、通常モードのコマンド@a
を実行します。マークcのある行に移動します。マークがカーソルの上にある場合、Vimは、 範囲を逆にする にするかどうかを尋ねます。
レジスタaの内容はそうではない可能性があるため、これは@a
(例:5@a
)にカウントを適用することと常に同じではありません。実行されるたびに常に1行下に移動します(j
またはk
の代わりに検索を使用して移動する「マクロ」を検討してください。行を完全に処理するには、より多くのカウントが必要になります。複数の一致があります)。
1つの解決策は、現在の選択を想定して操作するようにマクロを設定し、実行する前に操作するファイルの部分を選択することです。