vimで最後のn番目のコマンドを繰り返す

vimで最後のn番目のコマンドを繰り返す

vim は非常に直感的であることに気付きましたが、最後から 2 番目のコマンド (または最後から 3 番目、最後から 4 番目など) を繰り返す方法を見つけるのに苦労しています。.通常モードで入力すると、最後のコマンドが繰り返されます。 を押すと、3.最後のコマンドが 3 回繰り返されます。

と入力するoHello<Esc>A, World!<Esc>

Hello, World!

画面に表示されています。

Hello, World!
Hello
Hello
Hello

こんにちはと入力せずに。vim は 1 つのコマンドを超えて履歴を保存するので、次のように入力できますか3,2.(つまり、最後から 2 番目のコマンドを 3 回繰り返す)?

答え1

いいえ、.のコマンドにはvim履歴がありません。また、私が知る限り、通常モードのコマンドには繰り返し履歴のようなものはありません。キー入力回数を最小限にするには、 をお勧めします4oHello<Esc>3jA, World<Esc>。 をすでに実行している場合はoHello<Esc>A, World<Esc>、 に続けて を実行できますuyy<Ctrl-r>3p

答え2

RepeatLast.vim というプラグインがあり、これは必要な機能を実行しますが、コストがかかります。vim は常にマクロ記録モードになります。他の vim パッケージと同様に、使用しているパッケージ マネージャーでインストールできます。または、~/.vim/pluginvim または~/.config/nvim/plguinneovim を使用している場合は、単にクローンを作成してドロップすることもできます。最後から 2 番目のアクションを繰り返すには、2\.通常モードで入力する必要があり、最後から 3 番目のアクションを繰り返すには、<n>\.通常モードで入力する必要があります。

http://www.vim.org/scripts/script.php?script_id=4381 https://github.com/vim-scripts/RepeatLast.vim

関連情報