J'ai remarqué que vim peut être assez intuitif, mais j'ai du mal à trouver un moyen de répéter l'avant-dernière commande (ou l'avant-dernier, l'avant-dernier, etc.). En tapant .
en mode normal, il répétera la dernière commande. Appuyez sur 3.
pour répéter la dernière commande trois fois.
Disons que je tape oHello<Esc>
alors A, World!<Esc>
. Je reçois maintenant
Hello, World!
sur l'écran. Maintenant, dis que je veux
Hello, World!
Hello
Hello
Hello
sans taper Bonjour. Est-ce que vim stocke l'historique au-delà d'une commande, donc je pourrais taper quelque chose comme 3,2.
(c'est-à-dire répéter l'avant-dernière commande trois fois)?
qaoHello<esc>q
puis@a
répéterHello
quand vous le souhaitez.) Il y a aussi@@
de répéter la dernière macro utilisée.3@a
répéter la macro plusieurs foisRéponses:
Non, la
.
commande dansvim
n'a pas d'historique, et il n'y a aucune sorte d'historique de répétition pour les commandes en mode normal que je connaisse. Pour le moins de frappes, je recommanderais4oHello<Esc>3jA, World<Esc>
. Si vous l'avez déjà faitoHello<Esc>A, World<Esc>
, vous pouvez suivre cela avecuyy<Ctrl-r>3p
.la source
Il y a ce plugin appelé RepeatLast.vim qui fait ce que vous voulez mais avec un coût: votre vim est toujours en mode macro d'enregistrement. Vous pouvez l'installer avec le gestionnaire de packages que vous utilisez comme tout autre package vim ou vous pouvez simplement le cloner et le déposer
~/.vim/plugin
si vous utilisez vim ou~/.config/nvim/plguin
si vous utilisez neovim. Pour répéter l'avant-dernière action, vous devez taper2\.
en mode normal et pour répéter la dernière action, vous devez taper<n>\.
en mode normal.http://www.vim.org/scripts/script.php?script_id=4381 https://github.com/vim-scripts/RepeatLast.vim
la source