LinuxParty
Para hacer una búsqueda en Vim, bastará pulsar la tecla [ / ]
. Recuerda que si estás en el "modo insertar", puedes pulsar la tecla [ Esc ] o la combinación de teclas [ Ctrl ]+[ O ]
, pasas puntualmente al modo normal. Una vez introducida la cadena de búsqueda, pulsas [ enter ]
, y aparecerán todas las coincidencias resaltadas. Si quieres quitar ese resaltado simplemente utiliza el comando [ :noh ]
.
En el caso de que veas que no se resaltan los resultados, y realmente existan resultados correspondientes a la búsqueda que estás realizando, simplemente utiliza la opción [ :set highlight ]
.
Una vez realizada la búsqueda conforme te he indicado anteriormente, y resaltados todos los resultados puedes navegar entre ellos utilizando,
[ N ]
para ir al siguiente resultado[ Mayúsc ]+[ N ]
para ir al resultado anterior
Indicarte que si en lugar de utilizar [ / ]
utilizas [ ? ]
realizarás la búsqueda hacia atrás. Es decir, con [ / ]
realizas las búsquedas desde la posición que te encuentras hacia adelante. Mientras que con [ ? ]
realizas las búsquedas desde donde te encuentras hacia atrás.
Pero no solo esto, si te encuentras en el modo normal, te sitúas sobre una palabra y pulsas [ * ]
, se resaltarán todas las coincidencias de esa misma palabra a lo largo de todo el documento. Por supuesto, puedes desplazarte como he indicado anteriormente.
Resumiendo
[ / ]<texto>
busca[ <texto> ]
hacia adelante[ ? ]<texto>
busca[ <texto> ]
del cursor hacia atrás.
Menos usados, pero también conviene saberlo, referentes a un caracter.
[ t ]<caracter>
salta hasta el[ <caracter> ]
siguiente[ T ]<caracter>
salta hasta el[ <caracter> ]
precedente[ f ]<caracter>
salta sobre el[ <caracter> ]
siguiente[ F ]<caracter>
salta sobre el[ <caracter> ]
precedente
De localización.
[ n ]
te mueve a la siguiente localización de la palabra que buscas[ N ]
en este caso salta a la localización precedente[ ; ]
salta sobre el siguiente cárácter, relativo al último que te moviste[ , ]
idem que en el caso anterior, pero en lugar de al siguiente, al precedente
Reemplazando en Vim
Pero de verdad, si hay algo que me tiene completamente enamorado es reemplazar en Vim. Es algo realmente espectacular. Tener al alcance de tus dedos todo el potencial de las expresiones regulares para buscar y reemplazar en Vim, es algo que, sinceramente, me fascina.
Sintaxis
Aquí si me quiero detener un poco, y dejar mas o menos clara la sintaxis a la hora de buscar y reemplazar en Vim. Fíjate,
[ :rango s/patron/reemplazo/[cgil] ]
Lo que estás buscando y más vas a usar es lo siguiente:
:%s/texto-a-cambiar/texto-remplazado/g
No obstante, esta es su sintaxis
Respecto al rango, puede ser alguno de los enumerados abajo, una combinación o ninguno de ellos. el [ rango ]
es totalmente opcional, siempre puedes omitirlo
[ numero ]
se refiere a la búsqueda y reemplazo en una línea concreta[ inicio,fin ]
de la línea[ inicio ]
a la línea[ fin ]
[ . ]
para la línea actual[ $ ]
se refiere a la última línea del archivo[ % ]
se refiere a todo el archivo
Existen algunas opciones mas de las que te he indicado, pero con estas, seguro que abarcas la mayor parte de los casos que necesites. Algunos ejemplos,
[ :5,10s/casa/caso/g ]
reemplaza[ casa ]
por[ caso ]
entre las líneas 5 y 10 del documento.[ :%s/casa/caso/g ]
se comporta igual que el caso anterior, pero lo hace en todo el documento.
Por otro lado, respecto a las opciones [ cgil ]
que aparecen en la sintaxis indicadas anteriormente,
[ c ]
te obliga a confirmara cada una de las sustituciones.[ g ]
reemplaza todas las ocurrencias de la línea. Si no se añade esta opción solo cambiará la primera de las apariciones en la línea.[ i ]
no distingue entre mayúsculas y minúsculas.[ l ]
diferencia entre mayúsculas y minúsculas.
Así, por en general, la forma de cambiar todas las apariciones de la palabra [ casa ]
en un texto, es tan sencillo como [ :%s/casa/caso/g ]
si además no quieres hacer distinción entre mayúsculas y minúsculas [ :%s/casa/caso/gi ]
Expresiones regulares
Llegados a este punto, y para sacar el máximo provecho, tendrás que hacer uso de las expresiones regulares. Para ello, de nuevo te remito al capítulo comodines y expresiones regulares del tutorial sobre el terminal
Algunos ejemplos
A continuación te dejo algunos ejemplos para que te hagas una idea del potencial que tienen tanto las expresiones regulares como el uso de reemplazar con Vim.
:5,10s/casa/caso/g
reemplazacasa
porcaso
entre las líneas 5 y 10 del documento.:%s/casa/caso/g
se comporta igual que el caso anterior, pero lo hace en todo el documento.
Por otro lado, respecto a las opciones cgil
que aparecen en la sintaxis indicadas anteriormente,
c
te obliga a confirmara cada una de las sustituciones.g
reemplaza todas las ocurrencias de la línea. Si no se añade esta opción solo cambiará la primera de las apariciones en la línea.i
no distingue entre mayúsculas y minúsculas.l
diferencia entre mayúsculas y minúsculas.
Así, por en general, la forma de cambiar todas las apariciones de la palabra casa
en un texto, es tan sencillo como :%s/casa/caso/g
si además no quieres hacer distinción entre mayúsculas y minúsculas :%s/casa/caso/gi

-
LinuxBiz
- Se lanzó Red Hat Enterprise Linux 9.5 con la función de sistema Sudo y Podman 5.0
- AlmaLinux OS 9.5 ya está disponible como alternativa gratuita a Red Hat Enterprise Linux 9.5
- Cómo la comunidad de AlmaLinux apoyó la compatibilidad binaria de RHEL
- Instalar un ERP y CRM para tu Pyme, paso a paso
- Cómo enviar/notificar mensajes a iOS y Android desde la consola de Linux
- Zeit: una herramienta GUI para programar trabajos Cron y At en Linux
- Se piden más trabajos con talento open source: un nuevo informe de la Fundación Linux muestra que faltan talentos por cubrir
- Corea del Sur apuesta por el Software Libre y migrará de Windows a Linux
- Las 15 mejores herramientas de recuperación de datos de Linux: la elección de los profesionales
- 9 herramientas de productividad para Linux que merecen su atención
- Más poder en tu terminal con Tmux
- Generar y entregar informes de actividad del sistema usando los conjuntos de herramientas de Linux
- Las 10 mejores distribuciones Linux para el servidor para 2019
- Cómo desarrollar su propia distribución de Linux personalizada desde cero
- 5 ventajas que tiene LibreOffice sobre Microsoft Office
Comentarios