添加单词时将分隔文本添加到 Vim 寄存器

djm*_*jme 5 vim delimiter

我想在 Vim 的寄存器中附加一些单词。但是,不是将没有分隔符的单词附加在一起,而是在单词之间添加“ - ”。

我正在录制一个宏来查找单词并将它们附加到特定的寄存器,这很容易做到,但我不知道当我将单词拉到寄存器时如何告诉 vim 如何在每个单词后附加文本分隔符。

有谁有想法吗?

qa - 开始录制宏 a

"zyiw - 猛拉一个词来注册 z

对于下一步,如何在查找和附加下一个单词之前附加“-”来注册 z?

谢谢。

rom*_*inl 6

您将不得不执行以下操作:

:let @z .= '-'
Run Code Online (Sandbox Code Playgroud)

在下之前"Zyiw

这可以通过自定义映射实现自动化:

nnoremap <key> :let @z .= '-' + expand('<cword>')
Run Code Online (Sandbox Code Playgroud)

参考:

:help :let-@
:help expand()
:help <cword>
Run Code Online (Sandbox Code Playgroud)

因为我们在做Vimscript中,通常建议操作与寄存器:help setreg():help getreg()所以我们可以用一个几乎完全程序化的解决方案去:

nnoremap <key> :call setreg('Z', '-' . expand('<cword>'))
Run Code Online (Sandbox Code Playgroud)