2008-09-23 10 views
6

NOTA: No estoy acostumbrado a usar VI, es lo primero que me viene a la mente que podría hacer lo que necesito. Siéntase libre de sugerir cualquier otro programa.¿Puedo usar RegEx y VI (o algo similar) para autocompletar un texto para mí?

Tengo un formulario con casi 100 campos que me gustaría completar automáticamente con PHP. Sé cómo hacer el autocompletado, pero me gustaría evitar agregar manualmente el texto necesario a 100 campos.

¿Hay una manera automatizada que puede tomar el texto:

<input name="riskRating" id="riskRating" type="text" /> 

y cambiarlo a:

<input name="riskRating" id="riskRating" type="text" value="<?php echo $data['riskRating']; ?>" /> 

Recuerda que yo estoy queriendo hacer esto a casi 100 campos. Estoy intentando evitar ir a cada campo, pegar en el código PHP y cambiar el nombre de la variable manualmente.

Espero que algún VI gurú conozca la parte superior de su cabeza.

Respuesta

5

Tomando algunas ideas de Zsolt Botykai y Mark Biek:

:%s:<input\(.* id="\([^"]*\)".*\) />:<input \1 value="<?php echo $data['\2']; ?> />:g 
+0

Gracias por las respuestas. Ustedes me han ahorrado mucha molestia. – Haabda

4

:%s:\(<input name="\([^"]\+\)" id="[^"]\+" type="text" \)/>:\1value="<?php echo $data ['\2']; ?>" />:gci

Esa es una línea. HTH.

+0

No veo cómo funciona esto para algo más que el caso específico de "riskRating" –

+0

Ah, entonces el problema no se especificó exactamente. Actualizando la respuesta. –

+0

"Recuerda que quiero hacer esto en casi 100 campos. Estoy tratando de evitar ir a cada campo, pegar en el código PHP y cambiar el nombre de la variable manualmente". –

2

lo hice así. Aunque no estoy seguro de cómo escapar para trabajar en VIM. Voy a editar si puedo averiguarlo

Esta es la parte de búsqueda de la expresión regular:

<input (.*) id="(.*?)" (.*) /> 

Este es el sustituir parte:

<input \1 id="\2" \3 value="<?php echo $data['\2']; ?>" /> 
+0

Eso es mejor que el mío. :% s: : : g –

+0

Gracias por las respuestas. Ustedes me han ahorrado mucha molestia. – Haabda

-1

paso 1: buscar el tipo chaine = "texto":

/type="text" 

Verifique que todas las cadenas que desea estén atrapadas. paso 2: Subsitute con la cadena buscada:

:%s//type="text" value="<?php echo $data riskrating]; ?>"/g 

paso 3: Sé feliz!

Cuestiones relacionadas