vim
Encontrar y reemplazar
Buscar..
Comando sustituto
Este comando:
:s/foo/bar/g
sustituye cada aparición de foo
con bar
en la línea actual.
fool around with a foodie
se convierte en
barl around with a bardie
Si omite la última /g
, solo reemplazará la primera aparición en la línea. Por ejemplo,
:s/foo/bar
En la línea anterior se convertiría
barl around with a foodie
Este comando:
:5,10s/foo/bar/g
Realiza la misma sustitución en las líneas 5 a 10.
Este comando
:5,$s/foo/bar/g
realiza la misma sustitución desde la línea 5 hasta el final del archivo.
Este comando:
:%s/foo/bar/g
Realiza la misma sustitución en todo el búfer.
Si estás en modo visual y presionas los dos puntos, aparecerá el símbolo '<,'>
. Entonces puedes hacer esto
:'<,'>s/foo/bar/g
y haga que la sustitución ocurra dentro de su selección de modo visual.
Este comando:
:%s/foo/bar/gc
es equivalente al comando anterior, pero solicita confirmación en cada aparición gracias a la marca /c
(para "confirmación").
Ver :help :s
y :help :s_flags
.
Véase también esta sección sobre rangos de línea de comando .
Reemplazar con o sin expresiones regulares
Este comando de sustitución puede usar expresiones regulares y coincidirá con cualquier instancia de foo
seguida de cualquier (uno) carácter desde el período .
en Expresiones regulares coincide con cualquier carácter, por lo que el siguiente comando coincidirá con todas las instancias de foo
seguidas de cualquier carácter en la línea actual.
:s/foo./bar/g
1 fooing fooes fool foobar foosup
se convertirá
1 barng bars bar barar barup
Si quieres hacer coincidir el literal .
período puede escapar de él en el campo de búsqueda con una barra invertida \
.
:s/foo\./bar/g
1 fooing fooes foo.l foo.bar foosup
se convertirá
1 fooing fooes barl barbar foosup
O deshabilite todas las coincidencias de patrones siguiendo el comando s
con no
.
:sno/foo./bar/g
1 fooing fooes foo.l foo.bar foosup
generará un error
E486: Pattern not found