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

问题描述

我想在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>'))