Ich habe bemerkt, dass vim ziemlich intuitiv ist, aber ich habe Probleme, einen Weg zu finden, um den vorletzten Befehl (oder den vorletzten, den viertletzten usw.) zu wiederholen. Wenn Sie .
im normalen Modus tippen, wird der letzte Befehl wiederholt. Durch Drücken von 3.
wird der letzte Befehl dreimal wiederholt.
Nehmen wir an, ich tippe oHello<Esc>
dann A, World!<Esc>
. Ich verstehe jetzt
Hello, World!
auf dem Bildschirm. Jetzt sag ich will bekommen
Hello, World!
Hello
Hello
Hello
ohne Hallo zu schreiben. Speichert vim den Verlauf über einen Befehl hinaus, sodass ich so etwas wie eingeben kann 3,2.
(dh den vorletzten Befehl dreimal wiederholen)?
qaoHello<esc>q
dann@a
zu wiederholen,Hello
wann immer Sie möchten). Sie können auch@@
das zuletzt verwendete Makro wiederholen.3@a
das Makro auch mehrmals wiederholenAntworten:
Nein, der
.
Befehl invim
hat weder eine Historie, noch gibt es irgendeine Art von Wiederholungshistorie für Befehle im normalen Modus, die mir bekannt sind. Für die geringste Anzahl von Tastenanschlägen würde ich empfehlen4oHello<Esc>3jA, World<Esc>
. Wenn Sie dies bereits getan habenoHello<Esc>A, World<Esc>
, können Sie dem mit folgenuyy<Ctrl-r>3p
.quelle
Es gibt dieses Plugin mit dem Namen RepeatLast.vim, das das macht, was Sie wollen, aber es kostet Sie: Ihr Vim befindet sich immer im Aufzeichnungsmakromodus. Sie können es mit dem Paket-Manager installieren, den Sie wie alle anderen vim-Pakete verwenden, oder Sie können es einfach klonen und ablegen,
~/.vim/plugin
wenn Sie vim oder~/.config/nvim/plguin
neovim verwenden. Um die vorletzte Aktion zu wiederholen, geben Sie den2\.
normalen Modus ein und um die vorletzte Aktion zu wiederholen, geben Sie den<n>\.
normalen Modus ein.http://www.vim.org/scripts/script.php?script_id=4381 https://github.com/vim-scripts/RepeatLast.vim
quelle