Repita el enésimo último comando en vim

Repita el enésimo último comando en vim

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 vimno 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/pluginsi estás usando vim o ~/.config/nvim/plguinsi 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

información relacionada