Conozco la expresión regular para hacer un reemplazo global,
%s/old/new/g
¿Cómo se hace para hacer una búsqueda interactiva de reemplazo en Vim ?
Agregue la bandera c (en el símbolo del sistema vim):
:%s/old/new/gc
le dará un sí / no en cada aparición de 'viejo'.
La ayuda integrada de Vim ofrece información útil sobre las opciones disponibles una vez que se ha seleccionado la sustitución con confirmación. Utilizar:
:h :s
Luego, vaya a la sección sobre las opciones de confirmación. Captura de pantalla a continuación:
Por ejemplo, para sustituir esta y todas las coincidencias restantes, use a
.
Mark Biek señaló usando:
para una búsqueda global, reemplace con la confirmación de cada sustitución. Pero, también disfruto verificando interactivamente que el texto anterior coincida correctamente. Primero hago una búsqueda con una expresión regular, luego reutilizo ese patrón:
El
s//
utilizará el último patrón de búsqueda.fuente
Creo que está buscando
c
, por ejemplos/abc/123/gc
, esto hará que VIM confirme los reemplazos. Ver: ayuda: sustituto para más información.fuente
Usualmente uso el comando find / sustitute / next / repeat :-)
Eso de
find "old"
,substitute 3 characters for "new"
,find next
,repeat substitute
, y así sucesivamente.Es un dolor para las sustituciones masivas, pero le permite ignorar selectivamente algunas ocurrencias antiguas (simplemente presionando
n
nuevamente para encontrar la siguiente en lugar de.
repetir una sustitución).fuente
<CR>
?Si solo desea contar el número de ocurrencias de 'abc', puede hacerlo
%s/abc//gn
. Esto no reemplaza nada, solo informa el número de ocurrencias de 'abc'.fuente
Si su texto de reemplazo necesita cambiar para cada ocurrencia coincidente (es decir, no simplemente eligiendo Sí / No para aplicar un reemplazo singular), puede usar un complemento Vim que hice llamado interactivo-reemplazar .
fuente
Neovim ahora tiene una función para previsualizar la sustitución:
Imagen tomada de: https://medium.com/@eric.burel/stop-using-open-source-5cb19baca44d Documentación de la función: https://neovim.io/doc/user/options.html# 'inccommand'
fuente
nvim
función incorporada, ¡es bueno saberlo! ¡Gracias por compartir!