1. ホーム
  2. vim

[解決済み] VIM挿入モードでの文字の繰り返し

2022-04-27 10:40:10

質問

Vimの挿入モード中に文字を繰り返し入力する方法はありますか? 例えば、80本のダッシュを挿入したい場合、emacsのようなものでは、次のように入力します。

Ctrl + U 8 0 -

VIMでこれを行う方法を私が知っている唯一の方法は、repeat引数で通常モードを終了し、挿入モードに戻ってダッシュを入力し、終了して実際のダッシュを挿入し、挿入モードに戻って入力を継続することです。 この順序は本当に長いです。

エスケープ 8 0 a - エスケープ a

モードの切り替えがないのはいいことだと思います。

解決方法は?

Eelvexの解決策を少し変えたバージョンです。

function! Repeat()
    let times = input("Count: ")
    let char  = input("Char: ")
    exe ":normal a" . repeat(char, times)
endfunction

imap <C-u> <C-o>:call Repeat()<cr>