2010-06-16 8 views
5

Ho una macro che uso per sostituire caratteri speciali per le sue entità html. Vorrei salvarlo nel mio .vimrc.Come salvare una macro composta da più ricerche e sostituirla nel mio .vimrc

Secondo this, dovrei usare let @ r = 'macro_text_goes_here'. Il problema è che il mio macro è una serie di ricerca e sostituzione, qualcosa di simile:

:%s:á:\á:Ige 
:%s:é:\é:Ige 
:%s:í:\í:Ige 

Così, ho provato con^V-entrare, <immettere>, <CR> utilizzando le interruzioni di linea vero e proprio, ma non funziona mai. Dall'altro lato, se inserisco il testo in un registro e poi eseguo la macro, funziona come previsto.

risposta

10

aggiungendo questo per Vimrc opere per me

let @a=':%s/á/\&aacute;/g^M:%s/é/\&eacute;/g^M:%s/í/\&iacute;/g^M' 

nota che^M è un carattere speciale inserito utilizzando Ctrl +V, Ctrl +M.

+0

Hai ragione, ho avuto spazi tra il^M, ed è per questo che ha fallito per me. – Doppelganger

+0

È possibile utilizzare doppie virgolette e '\ ' al loro interno se non si desidera avere dati binari all'interno di vimrc. – ZyX

+0

@smi +1 Grazie mille per Ctrl + V. Mi ha aiutato un sacco ^^ – whitesiroi

1

Ok ho trovato la soluzione, avevo provato con ^M prima, ma avendo alcuni spazi finali non ha funzionato, la sintassi corretta per l'esempio sulla questione è:

let @r=':%s:á:\&aacute;:Ige^M:%s:é:\&eacute;:Ige^M:%s:í:\&iacute;:Ige^M' 

Don dimentichiamo l'ultimo^M e che è necessario riavviare Vim per ricaricare il .vimrc.

Problemi correlati