3

我正在使用:

set clipboard=unnamed  

这样剪切和复制的选择就会进入*寄存器,该寄存器可以方便地链接到x剪贴板(我使用的是 Linux)。

我希望它也可以在+寄存器中获得鼠标中键粘贴并Ctrl-V在其他应用程序中给出相同的结果。xclip我想这可能与和之间的区别有关xclip -selection c

现在我的解决方法是:

noremap Y "+y  

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

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

4

3 回答 3

3

我想你想

:set clipboard+=unnamed,unnamedplus

从帮助:

unnamedplus “未命名”标志的一种变体,它使用剪贴板寄存器“+”(|quoteplus|)而不是寄存器“*”用于除 yank 之外的所有操作。当包含“未命名”时,Yank 应将文本复制到寄存器“+”和“*”中。

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

于 2013-01-07T00:28:16.640 回答
1

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

vnoremap Y ygv"+y

但是,这不起作用,只能反过来:

vnoremap Y "+ygvy

这是它的作用:

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

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

于 2013-01-06T16:25:34.880 回答
1

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

于 2013-01-06T18:10:39.930 回答