Repita o enésimo último comando no vim

13

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)?

redbmk
fonte
2
Lembre-se de que você pode gravar qualquer coisa como uma macro ( qaoHello<esc>qdepois @arepetir Hellosempre que quiser.) Também há @@para repetir a última macro usada.
21412 James McLaughlin
2
Eu suponho que você também pode fazer 3@apara repetir a macro várias vezes
redbmk

Respostas:

8

Não, o .comando in vimnã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 recomendo 4oHello<Esc>3jA, World<Esc>. Se você já fez oHello<Esc>A, World<Esc>, pode seguir com isso uyy<Ctrl-r>3p.

jw013
fonte
4

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, digite 2\.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

Sassan
fonte
2
@Sassan, você poderia editar sua resposta e explicar rapidamente como instalar este plug-in e como exatamente ele pode ser usado para resolver o problema do OP?
terdon
2
@terdon se alguém ler minha resposta e não souber como usar um gerenciador de pacotes, é realmente melhor para ele ficar curioso e passar o tempo aprendendo sobre os gerenciadores de pacotes no vim. O mesmo para quem lê e não sabe como obter informações de docs / README.md para plugins vim.
Sassan
Essa não é a questão. Uma resposta que é apenas um link não é considerada uma resposta . As respostas devem ser independentes e oferecer todas as informações necessárias para aplicar a solução proposta. Obrigado pela edição!
terdon
1
Na verdade eu concordo, este plugin é muito hackish para ser usado por pessoas que não sabem como instalá-lo :)
Boris Churzin