Ripeti l'ennesimo ultimo comando in vim


13

Ho notato che vim può essere piuttosto intuitivo, ma ho difficoltà a trovare un modo per ripetere il comando penultimo (o terzo-ultimo, quarto-ultimo, ecc.). Digitando .in modalità normale ripeterà l'ultimo comando. Premendo 3.si ripeterà l'ultimo comando tre volte.

Diciamo che scrivo oHello<Esc>allora A, World!<Esc>. Adesso capisco

Hello, World!

sullo schermo. Ora, dì che voglio ottenere

Hello, World!
Hello
Hello
Hello

senza digitare Hello. Vim memorizza la cronologia oltre un comando, quindi potrei digitare qualcosa del genere 3,2.(cioè ripetere il penultimo comando tre volte)?


2
Ricorda che puoi registrare qualsiasi cosa come macro ( qaoHello<esc>qquindi @aripetere Helloogni volta che vuoi). C'è anche @@da ripetere l'ultima macro utilizzata.
James McLaughlin,

2
Suppongo che potresti anche 3@aripetere la macro più volte
redbmk

Risposte:


8

No, il .comando in vimnon ha una cronologia, né esiste alcun tipo di cronologia di ripetizione per i comandi in modalità normale di cui sono a conoscenza. Per il minor numero di sequenze di tasti, consiglierei 4oHello<Esc>3jA, World<Esc>. Se l'hai già fatto oHello<Esc>A, World<Esc>, potresti seguirlo con uyy<Ctrl-r>3p.


4

C'è questo plugin chiamato RepeatLast.vim che fa quello che vuoi ma con un costo: il tuo vim è sempre in modalità macro di registrazione. Puoi installarlo con il gestore pacchetti che stai usando come qualsiasi altro pacchetto vim oppure puoi semplicemente clonarlo e rilasciarlo ~/.vim/pluginse stai usando vim o ~/.config/nvim/plguinse stai usando neovim. Per ripetere la penultima azione devi digitare 2\.in modalità normale e per ripetere l'ultima azione devi digitare <n>\.in modalità normale.

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


2
@Sassan, potresti forse modificare la tua risposta e spiegare rapidamente come installare questo plugin e come può essere utilizzato esattamente per risolvere il problema del PO?
terdon

2
@terdon se qualcuno legge la mia risposta e non sa come usare un gestore di pacchetti è davvero meglio per lui essere curioso e passare il tempo e conoscere i gestori di pacchetti in vim. Lo stesso per chi lo legge e non sa come ottenere informazioni da docs / README.md per i plugin vim.
Sassan,

Non è questo il punto. Una risposta che è solo un collegamento non è considerata una risposta . Le risposte dovrebbero essere autonome e offrire tutte le informazioni necessarie per applicare la soluzione proposta. Grazie per la modifica!
terdon

1
In realtà sono d'accordo, questo plug-in è troppo hacker per essere utilizzato da persone che non sanno come installarlo :)
Boris Churzin,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.