【问题标题】:gvim auto copy selected text to system clipboard (to share it with apps )gvim 自动将所选文本复制到系统剪贴板(与应用程序共享)
【发布时间】:2012-04-21 13:33:38
【问题描述】:

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

设置 guioptions+=a

它可以完美运行,但在 Ubuntu 11.10 中却不行。

我也试过了

设置剪贴板=unnamedplus,unnamed,autoselect,exclude:cons\|linux。

但没有成功。

请不要提供手动点击解决方案,例如 vmap <C-Insert> "+y 和鼠标复制/粘贴。

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

  1. 打开 gvim

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

  3. 进入firefox并点击ctrl-vctrl-Insert粘贴文本

解决方案

在这个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

【问题讨论】:

    标签: vim clipboard


    【解决方案1】:

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

    set clipboard+=unnamedplus 就足够了如果你的 Vim 版本支持它。我的是 7.3.35,但它不起作用(不过,Vim 不会抱怨)。

    我不知道究竟是哪个补丁引入了unnamedplus,但您可以使用:help 'clipboard'(带单引号)来获得可用选项列表。如果列出了unnamedplus,则上面的 sn-p 应该可以解决您的问题。如果它不存在,您将无法使用它(显然):是时候重新评估您的“不提供像 vmap "+y 和鼠标复制/粘贴之类的手动单击解决方案”要求或编译更新版本的 Vim .

    【讨论】:

    • 在 Linux 中存在两个全局剪贴板, + 和 * 。您的答案无法处理 * 剪贴板。我建议您阅读解决方案部分中的主题,以了解更多问题。
    • 由于缺少代码格式,OP 缺少一些文本;那个 sn-p 应该是vmap &lt;C-insert&gt; "+y
    【解决方案2】:

    尝试以下操作:

    set guioptions+=P
    

    解释:

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

    来自:help guioptions

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

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

    【讨论】:

      猜你喜欢
      • 2011-05-30
      • 1970-01-01
      • 1970-01-01
      • 2010-11-07
      • 1970-01-01
      • 1970-01-01
      • 2014-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多