
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 vim
nã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/plugin
se estiver usando o vim ou ~/.config/nvim/plguin
se 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