【问题标题】:Append delimited text to Vim register when appending words附加单词时将分隔文本附加到 Vim 寄存器
【发布时间】:2020-10-18 12:26:18
【问题描述】:

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

我正在录制一个宏来查找单词并将它们附加到特定的寄存器,这很容易做到,但是当我将单词拉到注册。

有人知道吗?

qa - 开始录制宏 a

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

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

谢谢。

【问题讨论】:

    标签: vim delimiter


    【解决方案1】:

    您必须执行以下操作:

    :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>'))
    

    【讨论】:

    • 谢谢罗曼。我刚刚测试了您的答案,并且完全按照我的希望工作!感谢您抽出宝贵时间提供帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    • 1970-01-01
    • 1970-01-01
    • 2012-03-25
    • 1970-01-01
    • 2012-02-27
    • 1970-01-01
    相关资源
    最近更新 更多