Me gustaría agregar algunas palabras a un registro en Vim. Pero en lugar de agregar las palabras sin separador, me gustaría agregar "-" entre las palabras.

Estoy grabando una macro para encontrar las palabras y agregarlas a un registro específico, lo cual es fácil de hacer, pero no sé cómo decirle a vim cómo agregar el separador de texto después de cada palabra cuando coloco la palabra en el registro.

¿Alguien tiene alguna idea?

Qa - comienza a grabar macro a

"zyiw - tira de una palabra para registrar z

Para el siguiente paso, ¿cómo agrego "-" al registro z antes de buscar y agregar la siguiente palabra?

Gracias.

5
djme 18 oct. 2020 a las 15:26

1 respuesta

La mejor respuesta

Tendrás que hacer algo como:

:let @z .= '-'

Antes del próximo "Zyiw.

Esto podría automatizarse con un mapeo personalizado:

nnoremap <key> :let @z .= '-' + expand('<cword>')

Referencia:

:help :let-@
:help expand()
:help <cword>

Dado que estamos haciendo vimscript, generalmente se recomienda manipular los registros con :help setreg() y :help getreg() para que podamos optar por una solución casi totalmente programática:

nnoremap <key> :call setreg('Z', '-' . expand('<cword>'))
6
romainl 18 oct. 2020 a las 12:43