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

Append delimited text to Vim register when appending words

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

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

有人知道吗?

qa - 开始录制宏a

"zyiw - 抽出一个词来注册 z

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

谢谢。

您将必须执行以下操作:

:let @z .= '-'

在下一个"Zyiw之前。

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

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

参考:

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

由于我们在做 vimscript,一般建议使用 :help setreg():help getreg() 操作寄存器,这样我们就可以采用几乎完全编程的解决方案:

nnoremap <key> :call setreg('Z', '-' . expand('<cword>'))