0

vimの記録機能の使い方を学ぼうとしていますが、通常モードのセッションからのキーストロークしか記録および再生できないようです。入力モードに切り替えると、キーストロークが記録されていないように見えるか、記録を再生しても再生されません。私が話していることを説明するには:

これらの行を含むファイルがあります:

Dir['*.data']        # Files with the "data" extension
Dir['?']             # Any single-character filename
Dir['*.[ch]']        # Any file that ends with .c or .h
Dir['*.{java,rb}']   # Any file that ends with .java or .rb

そして、各行の最後にあるコメントを 4 タブ分右に移動したいと考えています。したがって、カーソルを最初の行の先頭に置き、記録を開始して a: を登録しますqa。次に、入力f#して行上のコメントを見つけ、挿入モードi<Tab><Tab><Tab><Tab>切り替えて、通常モードに再度切り替えて入力しesc、下に移動します次の行の先頭に移動し、記録を停止しqます。録音を再生すると@a、カーソルだけが下に移動しますが、入力キーストロークは再生されませんか?

4

2 に答える 2

2

superTabあなたのvimにインストールされていると確信しています。私はしばらく前に同じ問題を抱えていました。

必要に応じてできることは、次の方法で記録することです。

qaf#4i<c-v><tab><esc>j0q

それからx@a

Ctrl-v<Tab>そのため、代わりに押します<tab>

xところで、ちょっとしたトリック: , (何回再生するか)を保存したい場合は、再帰的/ネストされたマクロを使用できます:

qaf#4i<c-v><tab><esc>j0@aq

その後、押すだけ@aで、行の終わりまで同じことが行われます。

この回答は、編集の問題ではなく、マクロの問題のみを対象としていることに注意してください。編集の目標を達成したいだけなら、マクロを記録する代わりにC-Vブロック選択を使用します。I

于 2013-10-13T11:43:55.073 に答える