Percebi que o vim pode ser bastante intuitivo, mas estou tendo problemas para encontrar uma maneira de repetir o penúltimo comando (ou penúltimo, penúltimo, etc.). Digitando .
no modo normal, ele repetirá o último comando. Pressionar 3.
repetirá o último comando três vezes.
Digamos que eu digite oHello<Esc>
então A, World!<Esc>
. Agora eu recebo
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.
(por exemplo, repetir o penúltimo comando três vezes)?
qaoHello<esc>q
depois@a
repetirHello
sempre que quiser.) Também há@@
para repetir a última macro usada.3@a
para repetir a macro várias vezesRespostas:
Não, o
.
comando invim
não possui um histórico nem existe nenhum tipo de histórico de repetição para os comandos do modo normal que eu conheço. Para o menor número de pressionamentos de teclas, eu recomendo4oHello<Esc>3jA, World<Esc>
. Se você já fezoHello<Esc>A, World<Esc>
, pode seguir com issouyy<Ctrl-r>3p
.fonte
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, digite2\.
no modo normal e para repetir a penúltima ação, digite<n>\.
no modo normal.http://www.vim.org/scripts/script.php?script_id=4381 https://github.com/vim-scripts/RepeatLast.vim
fonte