繰り返しの編集とリファクタリングを処理するときに、非常に長いマクロをよく使用します。可能な限り、これらをマクロとして記録するのではなく、ex-modeコマンドとして記述します。これは、対話的に(コマンドウィンドウを使用して)編集する方が簡単だからです。
ただし、いくつかの通常モードのコマンドを追加する必要がある場合があります。たとえば、後でマクロで使用するために、行全体ではなく行の一部だけをヤンクしたり、テキストを希望どおりに並べたりする必要があります。
が含まれた後にexモードコマンドを続行する方法はありnorm
ますか?
(私が話している種類の複雑さの実際の例については:)
:'a+s/\_^\s*\(\S*\)::\_[^>]*>\s*\("[^"]*"\)\s*;\_s*\_$/ "\1", \2,/ | m 'a- | norm f,50a ^[d44|
最後にテキストを追加してexモードコマンドとして実行させる方法はありますか?
:execute
は、文字列を引数としてにのみ渡す:normal
ので、後者はコマンドラインで後の部分を認識しないため、他のExコマンドを追加できます。文字列のような非リテラル制御文字が含まれている場合に注意を払うにだけのものでは、あります\e
のために<Esc>
あなたはVimがそれを解釈できるようにするために、二重引用符を使用する必要がありますがそれ以外の場合は、単一引用符は文字列の中で何の解釈を防ぐため、。
:normal
コマンドが残りの行を消費しないようにしますか?もしそうなら、:execute
次のコマンドで実行できる文字列の中にラップすることができます::exe 'norm f,50a ^[d44|' | other Ex command
。