gvim自动将所选文本复制到系统剪贴板(与应用程序共享)

时间:2012-04-21 13:33:39

标签: vim clipboard

我想知道,如何启用所选文字的自动复制到'+' 在Ubuntu注册(在应用程序之间共享剪贴板)? 在win XP上,我有

  

设置guioptions + = a

它的工作完美,但在Ubuntu 11.10中却没有。

另外,我试过

  

设置clipboard = unnamedplus,unnamed,autoselect,exclude:cons \ | linux。

但没有成功。

请不要提供像这样的手动点击解决方案 vmap“+ y和鼠标复制/粘贴。

测试用例(使用“behave mswin”选项):

  1. 打开gvim

  2. shift - v ,移动光标和 Esc (在可视模式下选择行)

  3. 转到firefox并点击 ctrl - v ctrl - 插入以粘贴文字< / p>

  4. 解决方案

    在这个thread中,问题解决了。

    你需要从Christian Brabandt那里申请补丁。

    另外,如果在ubuntu中重新编译后遇到使用 shift - insert 粘贴的问题,可以在vimrc中添加:

    if has("gui_running")
        map <silent> <S-Insert> "+p
        cmap <S-Insert> <C-R>+
        imap <silent> <S-Insert> <Esc>"+pa
    endif
    

2 个答案:

答案 0 :(得分:0)

"+y是否有效?这不是一个建议:如果此命令不起作用,您可能会遇到一些阻止简单解决方案的潜在问题。所以它需要首先检查,即使它听起来很愚蠢。

set clipboard+=unnamedplus足够如果您的Vim版本支持。我的是7.3.35,它不起作用(虽然Vim没有抱怨)。

我不确切知道哪个补丁引入了unnamedplus,但您可以使用:help 'clipboard'(使用单引号)来获取可用选项列表。如果列出了unnamedplus,则上面的代码段会解决您的问题。如果它不在那里(显然)你将无法使用它:时间重新评估你的“不提供像vmap "+y手动点击解决方案和鼠标复制/粘贴”要求或编译更新的版本Vim。

答案 1 :(得分:0)

尝试以下操作:

set guioptions+=P

说明:

TLDR:a将文本放入"*寄存器中。 P将文本放入"+寄存器

来自:help guioptions

  

'a'自动选择:如果存在,则每当启动VISUAL模式时,   或可视区域扩展,Vim试图成为该所有者。   窗口系统的全局选择。这意味着视觉上   突出显示的文本可用于粘贴到其他应用程序中   以及进入Vim本身。当可视模式结束时,可能是由于   对文本的操作,或者应用程序要粘贴文本时   选择,突出显示的文本将自动拉入“ *   选择寄存器。因此,该选择仍可用于   VISUAL模式结束后粘贴到其他应用程序中。             如果不存在,则除非Vim明确指示,否则Vim不会成为窗口系统全局选择的所有者。   对“ *”寄存器执行抽出或删除操作。同样适用于   无模式的选择。

     

'P'类似于自动选择,但使用“ +寄存器”而不是“ *”   注册。