2012-03-01 8 views
7

come chiamare una funzione dalla stringa sostitutiva in vim? Quando ho:Funzione chiamata vim su un gruppo in stringa sostitutiva

%s/regex/string/g e voglio il gruppo come argomento e sostituirlo con il valore di ritorno della funzione:

%s/regex/call function(\1)/g così il gruppo # 1 sarà l'argomento della funzione, e il valore di ritorno di la funzione sostituirà tutte le corrispondenze nel buffer.

è possibile?

risposta

9

Per usare un'espressione vimscript è necessario aggiungere \= alla stringa di sostituzione:

%s/regex/\= function(submatch(1))/g 
+1

La sua non è buona, paste appena l'= funzione '(1)' in esso – microo8

+0

@ microo8 Grazie per il tuo commento. Ho aggiunto la chiamata 'submatch' mancante per ottenere' \ 1'. – jcollado

+0

Nota vedi '': h sub-replace-expression'' per ulteriori dettagli. –

Problemi correlati