回答:
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)