我在Ubuntu 10.10上使用gVim。我想将(yank)文本复制到系统剪贴板,以便复制的文本在其他应用程序中可用。
这适用于"+y
。但我想让它与y
合作。
我试图将y
映射到"+y
,但随后yy
不再起作用(因为它产生"+y"+y
)。
我也试过:set clipboard=unnamed
,但这只适用于另一个方向:系统剪贴板中的文本我可以用p
粘贴。
您是否尝试使用此命令进行映射:
noremap y "+y
?这种映射包含一个严重的错误:它在正常,可视和操作员待定模式下映射y
,而您只需要普通和可视模式。使用以下内容:
nnoremap y "+y
vnoremap y "+y
也尝试set clipboard=unnamedplus
(它至少需要vim-7.3.74)。 set clipboard=unnamed
在两个方向上工作,但它设置了«mouse»(*
)寄存器,它与剪贴板寄存器(+
)不同。
他们谈到的所有映射只是将地图简单复制到“+ y。但大多数时候,问题是甚至”+ y不起作用。
因此,您需要检查系统中是否已启用某个标志。
vim –version | grep xterm_clipboard
sudo apt-get install vim-gnome
,然后运行sudo update-alternatives –config vim
,在列表中选择vim.gnome。 (您应该使用与您的系统对应的正确命令)运行命令vim –version | grep xterm_clipboard
,现在您应该能够获得+(加号)。否则,使用谷歌查看正在发生的事情......clipboard=unnamedplus
设置为.vimrc。如果它是*(星号),请将set clipboard = unnamed添加到.vimrc。:reg
以检查系统剪贴板是否已更改。如果确实如此,当您在vim之外执行Ctrl-V时,您将获得该寄存器中的任何内容。我有和你一样的想法,但我做了多年。
nnoremap yy yy"+yy
vnoremap y ygv"+y
请注意,现在yy
命令执行两项操作:首先它按正常方式注册,然后将其拉到"
寄存器(系统剪贴板)。 y
命令做同样的事情。这是因为我想保留Vim的多个剪贴板功能。
对于从系统剪贴板粘贴,我曾经有过noremap gp "+p
(全局粘贴),但现在我使用了优秀的插件Yankring。
在visual mode中选择一些文本,它将被插入系统剪贴板(中间点击粘贴的那个,我无法回想起确切的名称)。
如果您使用set mouse=a
,您可以像在许多其他应用程序中一样使用鼠标进行视觉选择。
在我的情况下,我有时可以从gvim复制到系统剪贴板,有时不复制。我发现了一种解决方法,但我不了解潜在的问题。如果我在另一个应用程序中复制文本(例如,记事本,就像我在Windows 7上),那么我可以从gvim复制文本并将其粘贴到其他地方。看起来我需要为gvim的每个副本执行此操作。