我想在 Vim 的寄存器中附加一些单词。但是,不是将没有分隔符的单词附加在一起,而是在单词之间添加“ - ”。
我正在录制一个宏来查找单词并将它们附加到特定的寄存器,这很容易做到,但我不知道当我将单词拉到寄存器时如何告诉 vim 如何在每个单词后附加文本分隔符。
有谁有想法吗?
qa - 开始录制宏 a
"zyiw - 猛拉一个词来注册 z
对于下一步,如何在查找和附加下一个单词之前附加“-”来注册 z?
谢谢。
您将不得不执行以下操作:
: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)