2012-03-01 6 views
7

cómo llamar a una función desde la cadena de sustitución en vim? Cuando tengo:función de llamada vim en un grupo en cadena de sustitución

%s/regex/string/g y quiero que el grupo como argumento y sustituirlo por el valor de retorno de la función:

%s/regex/call function(\1)/g por lo que el grupo # 1 será el argumento de la función y el valor de retorno de la función reemplazará todas las coincidencias en el búfer.

¿es posible?

Respuesta

9

para usar una expresión Vimscript es necesario agregar \= a su cadena de reemplazo:

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

no es bueno, sólo se pegarán los '= function (1)' en ella – microo8

+0

@ microo8 Gracias por su comentario. He agregado la llamada 'submatch' faltante para obtener' \ 1'. – jcollado

+0

Nota ver '': h sub-replace-expression'' para más detalles. –

Cuestiones relacionadas