在Vim中同时写入两个寄存器

时间:2013-01-06 15:10:55

标签: linux vim copy-paste vim-registers

我正在使用:

set clipboard=unnamed  

因此,剪切和复制的选择将转到*寄存器,该寄存器可方便地链接到x剪贴板(我正在使用Linux)。

我想在+寄存器中同时获得鼠标中键和 Ctrl-V 在其他应用程序中给出相同的结果。我想这可能与xclipxclip -selection c之间的区别有关。

现在我的解决方法是:

noremap Y "+y  

这样我就可以Yy将当前行复制到+寄存器,然后在某些应用程序中使用Ctlr-V。但是我必须提前考虑是否要使用鼠标或Ctrl-V。

当我猛拉或用鼠标选择一些文字时,有没有办法让+*寄存器具有相同的值?

3 个答案:

答案 0 :(得分:3)

我想你想

:set clipboard+=unnamed,unnamedplus

来自帮助:

  

unnamedplus使用剪贴板的“未命名”标志的变体                   注册'+'(| quoteplus |)而不是注册'*'                   除了猛拉之外的所有操作。 Yank将复制文本                   当“未命名”时,注册'+'和'*'                   包括在内。

请注意,此选项值需要一个相当新的Vim 7.3(补丁级别151?)。

答案 1 :(得分:1)

正如评论中所讨论的,这是一个解决方案:

vnoremap Y ygv"+y

然而,这不起作用,只是相反:

vnoremap Y "+ygvy

以下是它的作用:

noremap Y:使用键绑定的默认行为映射到Y键。 :h noremap
"+y:进入+注册 gv:重新选择以前的视觉选择 y:正常情况下进入*寄存器(在Linux中)。

很高兴我能帮你解决它。 :)

答案 2 :(得分:1)

开箱即用,您可以安装autocutsel来同步两个剪贴板。