2013-05-23 22 views
7

Conosco la registrazione con q in registri, ma mi chiedevo se è possibile impostare qualcosa per richiamare rapidamente l'ultima registrazione, più o meno allo stesso modo in cui . ricorda l'ultimo breve comando di modifica (vedere here per una discussione su .).Una versione più potente di punto (ripetizione)

So di @@ ma sembra funzionare solo dopo aver fatto @z dove z è il registro utilizzato. ad es. per effettuare la registrazione è necessario digitare qz, continuare a fare la tua cosa, q, e quindi per eseguire la registrazione è necessario @z prima di poter iniziare @@ -ing per ripetere quello.

La mia soluzione di hacking ora è un binding nnoremap , @q che mi consente di effettuare registrazioni con qq e di terminarle con q. C'è qualcosa di meglio (ad esempio qualcosa che registra in un particolare registro con un singolo tasto, o qualcosa che ripete in modo specifico l'ultima macro registrata)? bisogna ammettere che non è un enorme miglioramento, dato che è già abbastanza ottimale.

Per me un registro semplice e facile da usare è generalmente più utile di un numero elevato di registri che richiedono un po 'più di lavoro. Anche se questo potrebbe essere solo il fatto che io sia cattivo nel ricordare le cose e non mi vedo effettivamente usare più di una.

+0

@@ funziona per qualsiasi macro nel mio vim. Quindi ... per quanto doloroso, su quale piattaforma e su quale piattaforma sei? –

+2

@RamRajamony Penso che la domanda riguardi l'esecuzione dell'ultima macro registrata rispetto all'ultima macro invocata. –

+0

Se per la maggior parte si utilizza solo un registro per i macro, penso che la soluzione sia piuttosto buona. Mappo Q a @j me stesso, e qj è facile da premere! –

risposta

0

Si potrebbe provare alcuni plugin che fanno qualcosa di simile a quello che hai chiesto:

RepeatLast.vim e record-repeat.vim

Un'altra opzione potrebbe essere utilizzare alcune funzioni e associarlo con repeat.vim.

+0

repeat.vim potrebbe essere promettente. Chiaramente non vale la pena di perseguire questo però. Queste altre opzioni si sentono inferiori al mio legame esistente senza plugin. –

2

Dato che ti piace utilizzare lo stesso registro per tutti i tuoi macros e semplicemente registrare su di esso secondo necessità, puoi impostare ed eseguire quel registro nel tuo file _vimrc in modo che @@ sia "innescato".

Nel file _vimrc, aggiungere:

let @z = '' 
execute 'normal @z' 

Ora, non appena si registra una macro nel registro z, è possibile eseguire immediatamente con @@.

+0

Interessante anche se questo sembra un set-up per strani comportamenti in futuro. Quello che sarebbe bello è se c'è solo qualcosa che tiene traccia dell'ultima macro. –

Problemi correlati