
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 vim
hat 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/plugin
wenn Sie Vim oder ~/.config/nvim/plguin
Neovim 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