gvim:轻松复制到系统剪贴板

gvim:轻松复制到系统剪贴板,vim,clipboard,ubuntu-10.10,Vim,Clipboard,Ubuntu 10.10,我在Ubuntu 10.10上使用gVim。我想将(yank)文本复制到系统剪贴板,以便复制的文本在其他应用程序中可用 这适用于“+y。但我希望它适用于y 我尝试将y映射到“+y,但是yy不再起作用(因为它产生“+y”+y) 我也试过了 :设置剪贴板=未命名 但这只适用于另一个方向:系统剪贴板中的文本我可以用p粘贴选择一些文本,它将插入到系统剪贴板中(在其中单击鼠标中键进行粘贴,我记不起确切的名称) 如果您设置mouse=a,您可以像在许多其他应用程序中一样使用鼠标进行视觉选择。您是否尝试使用此

我在Ubuntu 10.10上使用gVim。我想将(yank)文本复制到系统剪贴板,以便复制的文本在其他应用程序中可用

这适用于
“+y
。但我希望它适用于
y

我尝试将
y
映射到
“+y
,但是
yy
不再起作用(因为它产生
“+y”+y

我也试过了
:设置剪贴板=未命名
但这只适用于另一个方向:系统剪贴板中的文本我可以用
p

粘贴选择一些文本,它将插入到系统剪贴板中(在其中单击鼠标中键进行粘贴,我记不起确切的名称)


如果您
设置mouse=a
,您可以像在许多其他应用程序中一样使用鼠标进行视觉选择。

您是否尝试使用此命令进行映射:

noremap y "+y
??此映射包含一个严重错误:它以正常、可视和操作员挂起模式映射
y
,而您只需要正常和可视模式。使用以下命令:

nnoremap y "+y
vnoremap y "+y

还可以尝试设置剪贴板=unnameplus(至少需要vim-7.3.74)
set clipboard=unnamed
可以在两个方向上工作,但是它设置了«mouse»(
*
)寄存器,这与剪贴板寄存器(
+
)不同。

我和你的想法非常相同,但我做了很多年

nnoremap yy yy"+yy
vnoremap y ygv"+y
请注意,现在
yy
命令做两件事:首先它像正常一样拖动注册,然后拖动到
注册(系统剪贴板)。
y
命令做同样的事情。这是因为我想保留Vim的多剪贴板功能


对于从系统剪贴板粘贴,我以前有
noremap gp“+p
(全局粘贴),但现在我使用优秀的插件Yankring。

大多数在线解决方案只是告诉您将
y
映射到
”+y
。但有时问题是
“+y
甚至不起作用。您确实需要检查编译vim时使用了哪些功能

请尝试以下步骤:

  • 打开终端,运行vim–-version | grep xterm_剪贴板
  • 检查
    xterm_剪贴板
    前的符号,如果它是
    +
    (加号),请转至步骤4
  • 如果是-(减号),运行
    sudo apt get install vim gnome
    ,然后
    sudo update alternatives–config vim
    ,在列表中选择
    vim.gnome
    (您应该使用与您的系统对应的正确命令)。再次运行命令
    vim–-version | grep xterm_剪贴板
    ,现在您应该能够获得
    +
    (加号)
  • 检查您的系统剪贴板是否使用vim的
    +
    (加号)或
    *
    (星号)寄存器,这取决于您使用的操作系统,有时它们是等效的。如何检查?只需复制一些随机文本,然后打开
    vim
    并键入
    :reg
    ,检查哪个寄存器显示您刚才复制的字符串。如果是
    +
    (加号),将
    set clipboard=unnamedplus
    添加到
    .vimrc
    中。如果是
    *
    (星号),请添加
    设置剪贴板=未命名
  • 测试一下。复制vim中的内容,然后键入
    :reg
    ,检查系统剪贴板是否已更改。如果是这样,当您粘贴到
    vim
    之外时,您将获得该寄存器中的任何内容

  • 在我的情况下,我有时可以从gvim复制到系统剪贴板,有时则不能。我找到了一个解决办法,尽管我不理解潜在的问题。如果我在另一个应用程序中复制文本(例如,记事本,因为我在Windows 7上),那么我可以从gvim复制文本并将其粘贴到其他地方。看起来我需要为gvim的每个副本执行此操作。

    我只是使用不同的映射来处理剪贴板,并保持
    y
    command@CHID很高兴能为我效劳,谢谢。但是步骤3中的命令做什么呢?(为什么有效?)由于某种原因,在Firefox的jupyter笔记本的单元格中,点击鼠标中键复制的“可视选择”文本对我来说不起作用。
    “+y
    后粘贴有效。