sé la expresión regular para hacer un reemplazo global,Búsqueda interactiva/reemplazar regex en Vim?
%s/old/new/g
¿Cómo se puede ir haciendo una búsqueda interactiva-reemplazar en Vim?
sé la expresión regular para hacer un reemplazo global,Búsqueda interactiva/reemplazar regex en Vim?
%s/old/new/g
¿Cómo se puede ir haciendo una búsqueda interactiva-reemplazar en Vim?
Añadir la bandera c (en el símbolo del sistema vim):
:%s/old/new/gc
le dará un sí/no rápido en cada aparición de 'viejo'.
ayuda incorporada de Vim ofrece información útil sobre las opciones disponibles una vez que la sustitución con la confirmación ha sido seleccionado. Use:
:h :s
Luego, vaya a la sección sobre opciones de confirmación. Pantalla de abajo:
Por ejemplo, para sustituir este y todos los partidos restantes, utilice a
.
por lo general uso el sustituto siguiente comando find///repetición :-)
/old<CR>3snew<ESC>n.n.n.n.n.n.n.
Eso es 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 .
para repetir una sustitución).
Uso esto también, incluso para textos similares. (3cW
¡No es un antipatrón! Es dulce. Y puede buscar en la dirección opuesta usando N. Realmente es bueno si ve una palabra y desea cambiarla. * cwNewText
¿Qué es '
Creo que está buscando c
, por ejemplo s/abc/123/gc
, esto hará que VIM confirme los reemplazos. Ver: ayuda: sustituir por más información.
Si solo desea contar el número de apariciones de 'abc', puede hacer %s/abc//gn
. Esto no reemplaza nada, solo informa el número de apariciones de 'abc'.
Marcos Biek señaló usando:
%s/old/new/gc
para sustituir a una búsqueda global con la confirmación de cada sustitución. Pero también disfruto verificar de forma interactiva que el texto antiguo coincidirá correctamente. La primera vez que hago una búsqueda con una expresión regular, entonces volver a usar su patrón:
/old.pattern.to.match
%s//replacement/gc
El s//
utilizará el último patrón de búsqueda.
Si el texto de reemplazo necesita cambio para cada ocurrencia emparejado (es decir, no sólo elegir Sí/No para solicitar un reemplazo singular) se puede utilizar un plugin Vim que hice llamado interactive-replace.
+1, ¡aprendí algo nuevo hoy! Vim tiene tantos secretos ocultos .. :) –
¡De hecho! No sabía sobre el modificador c. – strager
Aprender comandos vim es un poco como jugar Nethack. Nunca se sabe qué maravillas va a contener un solo personaje. –