VIM: Buscar y reemplazar
Teclas y comando para hacer búsquedas dentro del vim:
* - Busca la palabra (completa) bajo el cursor hacia adelante.
# - Busca la palabra (completa) bajo el cursor hacia atrás.
g* - Busca la palabra (completa o no) bajo el cursor hacia adelante. Si la palabra es juan, encontrará juan, juanito, etc.
g# - Busca la palabra (completa o no) bajo el cursor hacia atrás. Si la palabra es juan, encontrará juan, juanito, etc.
:[rango]%s/busca/reemplaza/[opciones] - Busca 'busca' y lo reemplaza por 'reemplaza'.
rango: puede ser % que es todo el fichero o indicar a que número de líneas se aplica.
opciones: g significa todas las ocurrencias que haya, c significa preguntar antes de reemplazar e i significa que ignora mayúsculas o minúsculas.
:%s/erro/ERRO/gBúsca "erro" ya sea palabra completa o no y lo cambia por "ERRO" mi perro y mi perra comen pero otros perros y perras no
:%s/\/ERRO/gBúsca erro solo si es palabra completa y lo cambia por "ERRO" mi perro y mi perra comen pero otros perros y perras no
:%s/\<\(perro\|perra\)\>/PERRO/g
Búsca "perro" o "perra" solo si es palabra completa y lo cambia por "PERRO"
:%s!\~!\= expand($HOME)!g
Cambia el signo "~" por si path completo. Se puede usar expand con cualquier variable de sistema o definida por el usuario.
:%s/^/\=line(".") . ". "/g
Añade números de línea al texto, es como ":set number" pero permanente, útil para numerar ficheros de texto.
:%s/\.\s*\w/\=toupper(submatch(0))/g
pone a matúsculas la primera letra de las palabras detrás de un punto y seguido uno o más espacios.