
He notado que vim puede ser bastante intuitivo, pero tengo problemas para encontrar una manera de repetir el penúltimo comando (o el penúltimo, el cuarto, etc.). Al escribir .
en modo normal se repetirá el último comando. Al presionar 3.
se repetirá el último comando tres veces.
Digamos que escribo oHello<Esc>
entonces A, World!<Esc>
. ahora entiendo
Hello, World!
en la pantalla. Ahora di que quiero conseguir
Hello, World!
Hello
Hello
Hello
sin escribir Hola. ¿Vim almacena el historial más allá de un comando, por lo que podría escribir algo como 3,2.
(es decir, repetir el penúltimo comando tres veces)?
Respuesta1
No, el .
comando en vim
no tiene un historial, ni hay ningún tipo de historial de repetición para los comandos del modo normal que yo sepa. Para la menor cantidad de pulsaciones de teclas, recomendaría 4oHello<Esc>3jA, World<Esc>
. Si ya lo has hecho oHello<Esc>A, World<Esc>
, puedes seguir con uyy<Ctrl-r>3p
.
Respuesta2
Existe este complemento llamado RepeatLast.vim que hace lo que usted quiere, pero con un costo: su vim siempre está en modo macro de grabación. Puedes instalarlo con el administrador de paquetes que estás usando como cualquier otro paquete de vim o simplemente puedes clonarlo y soltarlo ~/.vim/plugin
si estás usando vim o ~/.config/nvim/plguin
si estás usando neovim. Para repetir la penúltima acción, debe escribir 2\.
en modo normal y para repetir la penúltima acción, debe escribir <n>\.
en modo normal.
http://www.vim.org/scripts/script.php?script_id=4381 https://github.com/vim-scripts/RepeatLast.vim