Repita o enésimo último comando no vim

Repita o enésimo último comando no vim

Percebi que o vim pode ser bastante intuitivo, mas estou tendo problemas para encontrar uma maneira de repetir o penúltimo comando (ou o terceiro ao último, o quarto ao último, etc.). Ao digitar .no modo normal, o último comando será repetido. Pressionar 3.repetirá o último comando três vezes.

Digamos que eu digite oHello<Esc>então A, World!<Esc>. agora eu entendo

Hello, World!

na tela. Agora, diga que eu quero

Hello, World!
Hello
Hello
Hello

sem digitar Olá. O vim armazena o histórico além de um comando, para que eu possa digitar algo como 3,2.(ou seja, repetir o penúltimo comando três vezes)?

Responder1

Não, o .comando in vimnão tem um histórico, nem há qualquer tipo de histórico de repetição para comandos no modo normal que eu saiba. Para o menor número de pressionamentos de teclas, eu recomendo 4oHello<Esc>3jA, World<Esc>. Se você já fez isso oHello<Esc>A, World<Esc>, você pode seguir com uyy<Ctrl-r>3p.

Responder2

Existe um plugin chamado RepeatLast.vim que faz o que você quer, mas com um custo: seu vim está sempre no modo macro de gravação. Você pode instalá-lo com o gerenciador de pacotes que está usando como qualquer outro pacote vim ou pode simplesmente cloná-lo e soltá-lo ~/.vim/pluginse estiver usando o vim ou ~/.config/nvim/plguinse estiver usando o neovim. Para repetir a penúltima ação você deve digitar 2\.no modo normal e para repetir a penúltima ação você deve digitar <n>\.no modo normal.

http://www.vim.org/scripts/script.php?script_id=4381 https://github.com/vim-scripts/RepeatLast.vim

informação relacionada