我在Vim中选择了一个区域。如何将其复制到OS X剪贴板?

(OS X剪贴板可以通过管道写入到/usr/bin/pbcopy)


当前回答

如果您正在使用MacPorts,您可以通过以下方式升级您的VIM以包括剪贴板支持:

port install vim +x +x11

现在你可以使用“+”寄存器将文本直接拉到Mac剪贴板上。效果非常好。

其他回答

在macos 10.8上,vim是用-clipboard编译的,所以要使用"*y "你需要 编译。幸运的是,brew install vim可以为您轻松编译一个新版本 然后是+clipboard。

如果剪贴板已启用,您可以通过点击“*y”将选定的区域复制到剪贴板

要查看它是否启用,请运行vim——version并查找+clipboard或-clipboard。例如,在我的10.5.6盒子上,它默认是不启用的:

% which vim
/usr/bin/vim
% vim --version
VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Nov 11 2008 17:20:43)
Included patches: 1-22
Compiled by _www@b77.apple.com
Normal version without GUI.  Features included (+) or not (-):
...
-clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments
...

如果它是用+剪贴板编译的,我就可以使用“*寄存器”来访问系统剪贴板。

我下载了7.2源代码并编译了它(简单如tar xjf vim-7.2.tar. gz)。Bz && CD vim72 && ./configure && make && sudo make install),并且剪贴板已启用:

% which vim
/usr/local/bin/vim
% vim --version
VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Mar 24 2009 17:31:52)
Compiled by rampion@Myrrhy.local
Normal version with GTK2 GUI.  Features included (+) or not (-):
...
+clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments
...

然而,即使在编译之后,当在终端中运行vim时,我也无法复制到剪贴板。只在X11.app中。

如果你使用的是MacOS X:

$ brew install vim
$ vim --version
VIM - Vi IMproved 7.4 [...]

然后,添加到你的。vimrc:

set clipboard=unnamed

现在您只需要在vim中执行:%y,将所有内容复制到剪贴板。

使用映射的最佳方法。

例如:

nnoremap C "+y
vnoremap C "+y
nnoremap cC ^"+y$

这将把大写C映射到剪贴板中,而不改变任何东西。工作与任何vim。

如果不支持+和*缓冲区,Fakeclip会实现它们。