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
-
Linux
- ¿Por qué Torvalds eliminó a los encargados rusos del mantenimiento del núcleo de Linux?
- 10 cosas que siempre hago después de instalar Linux (y por qué tú también deberías hacerlo)
- 7 cosas que nunca hago después de instalar Linux (y por qué tú tampoco deberías)
- Detección de Intrusos: Snort, Base, MySQL, y Apache2 en Ubuntu Linux 7.10
- He utilizado Linux durante 30 años. Aquí hay 5 razones por las que nunca cambiaré a Windows o MacOS
- ¿Por qué no más personas usan Linux en el escritorio? Tengo una teoría que quizás no te guste.
- Los países occidentales ricos lideran la expansión mundial del petróleo y el gas
- Systemd 256.1 aborda la queja de que 'systemd-tmpfiles' podría eliminar inesperadamente su directorio /home
- Por qué un kernel Linux de distribución 'congelada' no es la mejor opción para la seguridad
- RebornOS es una versión hermosa y fácil de usar de Arch Linux con abundantes opciones de escritorio
- Linus Torvalds sobre el 'hilarante' bombo de la IA
- Cambiar la hora en Linux con Chrony
- Renombrar multiples archivos masivamente en Linux (quitar espacios, cambiar mayúsculas) a la vez en Linux
- Linux 6.9 será el primero en superar los 10 millones de objetos Git
- Zorin OS 17.1 lanzado con soporte mejorado para aplicaciones de Windows, edición educativa
Comentarios