Vim:附加到特殊寄存器(例如&x2B;)

Vim:附加到特殊寄存器(例如&x2B;),vim,Vim,我想创建一个快捷方式来附加到寄存器“+”(这样我就可以在Vim之外进行系统粘贴)。例如,我想执行“+yy复制一行,然后执行”=yy将另一行附加到“+”寄存器 我找到了 我觉得得到我想要的东西应该很容易,但我对Vim脚本一无所知。你可以选择一个任意寄存器,比如说z,你可以在它上做附加动作,“zyy然后”zyy,然后创建一个只用于“导出”该寄存器的快捷方式: nnoremap <silent> <key> :<C-u>call setreg('+', getreg

我想创建一个快捷方式来附加到寄存器“+”(这样我就可以在Vim之外进行系统粘贴)。例如,我想执行
“+yy
复制一行,然后执行
”=yy
将另一行附加到“+”寄存器

我找到了
我觉得得到我想要的东西应该很容易,但我对Vim脚本一无所知。

你可以选择一个任意寄存器,比如说
z
,你可以在它上做附加动作,
“zyy
然后
”zyy
,然后创建一个只用于“导出”该寄存器的快捷方式:

nnoremap <silent> <key> :<C-u>call setreg('+', getreg('z', 1), getregtype('z'))<CR>
nnoremap:调用setreg('+',getreg('z',1',getregtype('z'))

(根据ZyX的评论编辑。)

也许会有帮助,直到真正的专家出现!不要使用
:让
复制寄存器内容:有
setreg()
用于此。要将
z
复制到
+
中,您需要
setreg('+',getreg('z',1,1),getregtype('z'))
。理由:一,<代码>:let不保留寄存器类型(是的,即使使用系统寄存器,Vim也会将寄存器类型保存在某个位置)2
@c
将NUL转换为换行符。