【发布时间】:2020-10-18 12:26:18
【问题描述】:
我想在 Vim 的寄存器中添加一些单词。但不是将单词附加在一起而没有分隔符,我想在单词之间添加“ - ”。
我正在录制一个宏来查找单词并将它们附加到特定的寄存器,这很容易做到,但是当我将单词拉到注册。
有人知道吗?
qa - 开始录制宏 a
"zyiw - 抽出一个单词来注册 z
对于下一步,如何在查找和附加下一个单词之前附加“ - ”来注册 z?
谢谢。
【问题讨论】:
我想在 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>'))
【讨论】: