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

Geo*_*nig 25 vim clipboard ubuntu-10.10

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

这适用于"+y.但我想让它合作y.

我试图映射y"+y但后来yy不再工作(因为它产生"+y"+y).

我也尝试了 :set clipboard=unnamed 但这只适用于另一个方向:我可以粘贴的系统剪贴板中的文本p.

ZyX*_*ZyX 13

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

noremap y "+y
Run Code Online (Sandbox Code Playgroud)

?这种映射包含一个严重的错误:它y以正常,可视和操作员待定模式映射,而您只需要普通和可视模式.使用以下内容:

nnoremap y "+y
vnoremap y "+y
Run Code Online (Sandbox Code Playgroud)

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


Rui*_*Liu 12

他们谈到的所有映射只是将地图简单复制到"+ y.但大多数时候,问题是甚至"+ y不起作用.

因此,您需要检查系统中是否已启用某个标志.

  1. 打开终端,运行 y
  2. 检查xterm_clipboard之前的标记,如果是+(加号),请转到步骤4.
  3. 如果是 - (减号),则运行"+y,然后"+y在列表中选择vim.gnome.(您应该使用与您的系统对应的正确命令)运行命令vim,现在您应该能够获得+(加号).否则,使用谷歌查看正在发生的事情......
  4. 检查你的系统剪贴板是否使用vim的+(加号)或*(星号)寄存器,这与OS到OS不同,有时它们是等价的.怎么检查?简单,只需从网站上复制一些字符串,然后打开vim并输入:reg,检查哪个寄存器存储您刚刚从系统剪贴板复制的字符串.(它在我的机器上显示+).如果它是+(加号),请将set添加vim –-version | grep xterm_clipboard到.vimrc.如果它是*(星号),请将set clipboard = unnamed添加到.vimrc.
  5. 试试看.复制vim中的内容,然后键入xterm_clipboard以检查系统剪贴板是否已更改.如果确实如此,当您在vim之外执行Ctrl-V时,您将获得该寄存器中的任何内容.


mar*_*cog 2

在可视模式下选择一些文本,它将被插入到系统剪贴板中(您中键单击粘贴的地方,我记不清确切的名称了)。

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