search – ¿Cómo aplico un conjunto de pulsaciones de teclas a cada aparición de una palabra?

Pregunta:

Si quiero eliminar cada palabra, es fácil, porque haría algo como esto:

:s%/WORD//g

Pero, ¿qué xyz si quiero hacer xyz a cada aparición de "WORD"? Por ejemplo, digamos que quiero eliminar todas las líneas que contienen "WORD". Puedo pensar en un par de formas de hacer esto, pero ninguna parece ideal.

1)

/WORD

y luego presione manualmente ddnddnddnddn... hasta que no haya más ocurrencias. Pero esto lleva mucho tiempo si hay muchas líneas para hacerlo.

2)

qd/WORD<enter>ddq

y luego adivine cuántas veces aparece WORD, y luego, por ejemplo:

500@d 

Pero esto A) perderá un montón de líneas o B) eliminará un montón de líneas adicionales.

¿Hay una mejor manera de hacer esto?

Respuesta:

Puede utilizar los comandos :global y :normal para esto. El comando :global tiene la siguiente sintaxis:

:global/{pattern}/{command}

Esto ejecutará "comando" en cada aparición de "patrón". Luego puede usar el comando :normal para ejecutar una serie de pulsaciones de teclas en cada aparición de una palabra usando :global . Al igual que:

:g/WORD/normal {keystrokes}

Si esas pulsaciones implican teclas especiales como <Ctrl> , puede combinarlo con el comando :execute así:

:g/WORD/exe "normal {keystrokes}"

Tenga en cuenta que debe poner una barra invertida antes de cada aparición de una tecla especial.

Para obtener más información sobre estos comandos, consulte :help :normal y :help :global .

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım