回答:
INSERTモードを1回だけ(最後に)終了しても問題がない場合、次のシーケンスが機能します。
Ctrl+o 80i-
Esc
80
繰り返し、 i
挿入する-
挿入したい文字INSERTモードを終了することのない別のもの:
Ctrl+o :norm 8ia
Return
<C-o>
Ctrl
+の省略形ですo
。
:normal
コマンドプロンプトからそれらを発行できるコマンドもあります。時々かなり便利です。
Escnic Esc Esc。
例えばEsc4iJEsc Esc出力しますJJJJ
。
<ESC>
<the number of times you want to repeat>
i
<the char you want to repeat>
<ESC>
for example: <ESC>12ia<ESC> will insert 12 a's.
あなたもできます Escnihello there EscEsc
ここで、nは繰り返しの数です。
例えば、 Esc5ihello there EscEsc
Esc
後で2回押す必要があることに気付きました。ありがとう@prashant
他にも多くの方法がありますが、あなたが説明する方法は最も短い方法です。vimあなたは、ほとんどのコマンドモードであなたの時間を過ごすことになっているので、それはちょうど3キーストローク+反復の数(80i-)になります。
ただし、この繰り返しを頻繁に使用する場合は、そのための関数またはマクロを作成できます。おそらく次のようなもの:
:function Repeat(char)
: let counter = input("How many times?: ")
: call feedkeys("i")
: call feedkeys(repeat(a:char,counter))
:endfunction
:imap <C-U> <ESC>h"ryl :call Repeat(@r)<CR>
「挿入」モードのままにしておくのは「いい」と言っていましたが、コマンドモードでは次の方法で2番目を回避できますESC。
私はこの投稿が古いことを知っていますが、明らかな「切り取り/コピーして貼り付け」オプションを見逃すのは残念です...
x ...切る
80 ...部数
p ペースト
注:これは、Martin Beckettによって提案された方法に似ていますが、そのコマンドを発行すると、おそらくモードが数回切り替わるため、このコマンドが即座に実行されるため、遅延が発生します。
v
y
してビジュアルモードに入り、ヤンクし80
p
てから80回貼り付ける必要がありました。何か不足していますか、それともステップを忘れましたか?
遅い答えですが、それだけの価値がある場合は、スパムを送信したい場合は、「最後のコマンドを繰り返す」コマンドを使用できます。 .
i「フレーズ」 Esc -i to insert, enter phrase/character, esc to go normal mode
. - Spam till you are satisfied. Will repeatedly input the phrase you typed (it repeats your last command).
これは、何回繰り返したいか正確にはわからないが、どれだけ長くしたいかを視覚的に知っているときに特に便利です。基本的に.
私の目が満足するまで爆破します。
そのような簡単なタスクのabbreviation
ためにトリックを行う必要があります。以下をあなたの.vimrc
iab <expr> -- repeat('-', 80)
今後--
は、スペースを入力して入力すると(挿入モードのとき)、--
自動的にに変換されます-
80回。
関数を使用して repeat
を、文字列を何度でも繰り返すことができます。
モードに.vimrc
入ると、更新前command
に次のコマンドを発行してテストできます。:iab <expr> -- repeat('-', 80)