Buscar y reemplazar con vi


Estaba leyendo algunos tutorials de los que recomiendo en otro articulo y eso me ha inspirado para escribir este truco aquí… Os aseguro que lo sabia antes de leer el tutorial (de hecho creo que precisamente en el tutorial esto no sale), lo que pasa es que no se me habia ocurrido ponerlo aquí 😉


Hay varias formas de hacer un search&replace global con ‘vi’, pero este es el comando que uso yo siempre:

:g/X/s//Y/g

Este ejemplo substituye todas las ocurrencias de “X” en el texto por “Y”.

Para hacerlo confirmando cada cambio uno por uno, basta con añadir la opción ‘c’ al final

Para hacerlo sin tener en cuenta mayusculas y minusculas… justamente con este comando está un poco complicado porque si añadimos la opción ‘i’ al final solo afectará al comando ‘s’ pero no al ‘g’. Bueno, “X” es en realidad una expresión regular, así que vosotros mismos ]:-)

No os he convencido? Bueeeno, si os da pereza usar expresiones regulares para esto podeis utilizar una variante que si permite usar facilmente la opción ‘i’ al final (esta si que sale en el tutorial del ILUG):

:%s/X/Y/gi

Por supuesto eso mismo sin la ‘i’ es “case sensitive”. Funciona, vale, pero pierde un poco la gracia, no? Yo sigo usando la primera variante, con el comando ‘g’ y expresiones regulares 😛

De todas formas hay que recordar que estamos buscando ocurrencias de eso en cualquier parte del texto, así que si queremos hacer la busqueda por “palabras completas” (i.e. no substituyendo “X” por “Y” en palabras como “estoXmola”) seguramente tendremos que echar mano de las expresiones regulares, aunque sean las más simples.

Mensaje subliminal: aprende de una vez, total no te vas a librar porque no puedes ir por ahí sin saber usar las expresiones regulares ]:-)

Un truco facil, eh? Os recomiendo que intenteis averiguar como y por qué funcionan las cosas, es muy constructivo 😉

Este post ha sido traido de forma automatica desde https://web.archive.org/web/20140625063149/http:/bulma.net/body.phtml?nIdNoticia=418 por un robot nigromante, si crees que puede mejorarse, por favor, contactanos.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.