Conosco il comando :bufdo
e stavo cercando di combinarlo con una macro che avevo registrato (@a
) per aggiungere un #include nel punto corretto di ciascun file di intestazione I ' d caricato. Tuttavia, non ho trovato un modo semplice per eseguire la macro su ciascun buffer. C'è un modo per eseguire una macro attraverso la modalità ex, che è ciò che richiede :bufdo
? O c'è un altro comando che mi manca?Esegui una macro in tutti i buffer in vim
risposta
si può fare in questo modo:
:bufdo execute "normal @a" | write
Il comando normale eseguirà la macro, ma deve essere eseguito utilizzando: execute, altrimenti il carattere pipe sarà interpretato come un carattere in modalità normale.
L'unica alternativa che potevo ottenere era quella di aggiungere i comandi :w
e :bn
alla macro, in modo che si salvasse automaticamente e passasse al buffer successivo. Potrei quindi eseguire il comando sugli altri 52 buffer digitando [email protected]
. Questo ha funzionato, ma per me è un modello concettuale molto diverso rispetto allo :bufdo
e spero che qualcun altro mi indicherà qualcosa di più simile a :bufdo
.
bisogna usare normal
per eseguire i comandi modalità normale, l'esecuzione di tale macro (@a
) in modalità comandi:
:bufdo normal @a
Funziona solo se è abilitato 'autowrite', altrimenti si fermerà con un errore quando tenta di passare al secondo buffer, poiché abbandonerà un buffer modificato. –
@DaveKirby farebbe questo se includessimo: w nella nostra macro? – MeanEYE
@MeanEYE: Sì, se si termina la macro con ': w', questo funziona. –
- 1. Vim ricerca attraverso tutti i buffer esistenti
- 2. Aggiorna tutti i file nel buffer dal disco in vim
- 3. riprodurre una macro vim fino alla fine del buffer
- 4. Buffer per scheda in vim
- 5. vim - Come chiudere tutti i buffer nella scheda corrente?
- 6. vim: ricerca sostituire su tutti i buffer scrivibili
- 7. macro - aprire tutti i file in una cartella
- 8. Applicare una funzione a tutti i buffer in emacs
- 9. Esegui tutti i file SQL in una directory
- 10. Esegui tutti i "Fix-it" di Xcode in una volta
- 11. Vim - Come eseguire un comando di modalità non normale in tutti i buffer?
- 12. Vim tabs e buffer
- 13. Macro per creare elenchi numerati in vim?
- 14. Come gestire efficacemente tab/buffer in vim?
- 15. Come salvare una macro Vim che contiene i tasti "Escape"?
- 16. Esegui comandi <Plug> in vim
- 17. Apri tutti i file in una cartella
- 18. Vim Completion Based in Buffer Name
- 19. Refresh Vim buffer
- 20. È possibile eseguire macro interattive o registrazioni in vim?
- 21. Come riaprire il buffer in vim?
- 22. Che cos'è un "buffer" in VIM?
- 23. Python nel buffer Vim?
- 24. Esegui script vim da vim commandline
- 25. Vim - apre una nuova scheda nel buffer
- 26. Esegui tutti i test aperti in Visual Studio
- 27. Come posso sostituire una parola con tutti i file contenuti in una cartella in Vim?
- 28. Ricarica .emacs per tutti i buffer attivi
- 29. Test unità Laravel - Esegui tutti i test
- 30. Esegui una ricerca e sostituisci tutti i file in una cartella tramite python?
un'occhiata a http://stackoverflow.com/questions/1291962/replay-a-vim-macro-until-end-of-buffer EDIT: non importa questo – gruntled
@gruntled: Grazie per il link. L'ho saltato perché la domanda non sembrava applicarsi, ma le tecniche dovrebbero funzionare. Ho votato per chiudere questo. –