Wiederholen Sie den n-ten letzten Befehl in vim

Wiederholen Sie den n-ten letzten Befehl in vim

Mir ist aufgefallen, dass vim ziemlich intuitiv sein kann, aber ich habe Probleme, eine Möglichkeit zu finden, den vorletzten Befehl (oder den drittletzten, viertletzten usw.) zu wiederholen. Wenn Sie .im normalen Modus tippen, wird der letzte Befehl wiederholt. Wenn Sie drücken, 3.wird der letzte Befehl dreimal wiederholt.

Nehmen wir an, ich tippe oHello<Esc>dann A, World!<Esc>. Jetzt bekomme ich

Hello, World!

auf dem Bildschirm. Nehmen wir nun an, ich möchte

Hello, World!
Hello
Hello
Hello

ohne „Hallo“ einzugeben. Speichert vim den Verlauf über einen Befehl hinaus, sodass ich etwas wie Folgendes eingeben kann 3,2.(also den vorletzten Befehl dreimal wiederholen)?

Antwort1

Nein, der .Befehl in vimhat keinen Verlauf, und es ist mir auch kein Wiederholungsverlauf für Befehle im Normalmodus bekannt. Um möglichst wenige Tastenanschläge zu machen, würde ich empfehlen 4oHello<Esc>3jA, World<Esc>. Wenn Sie bereits getan haben oHello<Esc>A, World<Esc>, können Sie danach uyy<Ctrl-r>3p.

Antwort2

Es gibt dieses Plugin namens RepeatLast.vim, das tut, was Sie wollen, aber zu einem Preis: Ihr Vim ist immer im Makroaufzeichnungsmodus. Sie können es mit dem Paketmanager installieren, den Sie wie jedes andere Vim-Paket verwenden, oder Sie können es einfach klonen und einfügen, ~/.vim/pluginwenn Sie Vim oder ~/.config/nvim/plguinNeovim verwenden. Um die vorletzte Aktion zu wiederholen, sollten Sie 2\.im Normalmodus tippen, und um die vorletzte Aktion zu wiederholen, sollten Sie <n>\.im Normalmodus tippen.

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

verwandte Informationen