Vim:将选择复制到OS X剪贴板

时间:2009-03-24 15:41:24

标签: macos vim clipboard

假设你在vim中选择了一个区域。如何将其复制到OS X剪贴板中?

(提示:OS X剪贴板可以通过管道写入/usr/bin/pbcopy

27 个答案:

答案 0 :(得分:233)

对于MacVim和Windows Gvim,只需将以下内容添加到~/.vimrc

set clipboard=unnamed

现在,yyDP等所有操作都可以使用剪贴板。无需使用"*"+作为前缀。

答案 1 :(得分:133)

如果启用了剪贴板,您可以点击"*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
...

如果使用+clipboard编译,我可以使用"*寄存器访问系统剪贴板。

我下载了7.2 source并对其进行了编译(简称tar xjf vim-7.2.tar.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
...

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

答案 2 :(得分:93)

您可以直观地选择文字并输入:w !pbcopy<CR>

或者您可以在~/.vimrc文件中包含以下键映射。他们以可视模式将文本剪切/复制到操作系统的剪贴板。

vmap <C-x> :!pbcopy<CR>  
vmap <C-c> :w !pbcopy<CR><CR> 

来源:http://drydevelopment.com/blog/vim-pbcopy-on-os-x

答案 3 :(得分:75)

根据我使用的vim版本,我可以使用+寄存器来访问剪贴板。

http://vim.wikia.com/wiki/Mac_OS_X_clipboard_sharing也可能有一些适合您的想法。

答案 4 :(得分:36)

在任何yank命令将结果放入复制缓冲区之前,

双引号星号( * )。这也适用于Windows和Linux。

答案 5 :(得分:25)

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

答案 6 :(得分:17)

直观地选择文字并输入:

ggVG
!tee >(pbcopy)

我认为比...更好:

ggVG
:w !pbcopy

由于它没有闪烁提示:“按ENTER或键入命令继续”

答案 7 :(得分:11)

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

port install vim + x + x11

现在您使用“+ register将文本直接拖到Mac剪贴板上。就像魅力一样。

答案 8 :(得分:10)

就我而言,我只需要这样做:

:set mouse=v

please visit the original solution on superuser.com

答案 9 :(得分:8)

如果您使用的是MacOS X:

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

然后,添加到.vimrc:

set clipboard=unnamed

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

答案 10 :(得分:5)

使用Homebrew's vim:brew install vim

Mac(自10.10.3 Yosemite起)预装了系统vim,启用clipboard标志。

您可以自己编译vim并启用该标志,或者只使用正确设置的Homebrew的vim。

要亲自查看,请使用/usr/bin/vim --version

查看stock system vim

你会看到类似的东西:

$ /usr/bin/vim --version

VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Nov  5 2014 21:00:28)
Compiled by root@apple.com
Normal version without GUI.  Features included (+) or not (-):
... -clientserver -clipboard +cmdline_compl ...

请注意-clipboard

使用自制软件的vim,你可以获得

$ /usr/local/bin/vim --version

VIM - Vi IMproved 7.4 (2013 Aug 10, compiled May 10 2015 14:04:42)
MacOS X (unix) version
Included patches: 1-712
Compiled by Homebrew
Huge version without GUI.  Features included (+) or not (-):
... +clipboard ...

请注意+clipboard

答案 11 :(得分:4)

我刚试过

map <C-x> :!pbcopy<CR>
vmap <C-c> :w !pbcopy<CR><CR>

效果很好。

答案 12 :(得分:4)

如果您的vim没有使用剪贴板编译,您希望复制所选文本而不是整行,您不想安装macvim或其他GUI,最简单的解决方案是将此行添加到.vimrc:

map <C-c> y:e ~/clipsongzboard<CR>P:w !pbcopy<CR><CR>:bdelete!<CR>

要使用它,只需直观地选择要复制的文本,然后选择Control-C。如果您想要对此行进行完整说明,请read here

答案 13 :(得分:2)

命令-C?这至少适用于从Terminal.app中为使用鼠标选择的文本启动的vim。

答案 14 :(得分:2)

如果您的VIM安装上有+剪贴板选项(您可以查看:版本)并且您处于可视模式,则可以执行&#34; + y 这会将选项拉到缓冲区 + ,即剪贴板。

我已将以下地图添加到我的vimrc中,并且工作正常。

vmap y&#34; + y 有了这个我可以领导者密钥跟随 y 以可视模式复制到剪贴板

nmap p&#34; + p 有了这个我可以领导者密钥跟随 p 在正常模式下从剪贴板粘贴。

PD:在Ubuntu上我必须安装vim-gtk才能获得+剪贴板选项。

答案 15 :(得分:2)

我的主要问题是VIM的默认osx版本。通过自制软件安装它将+clipboard添加到构建中。

检查

vim --version

如果显示-clipboard+clipboard

答案 16 :(得分:2)

Fakeclip实现+和*缓冲区,如果它们不是本机支持的。

答案 17 :(得分:2)

当您在Mac上使用标准操作系统键轻松访问剪贴板时,可以使用MacVim

它也完全向后兼容普通的Vim,所以我甚至不必单独.vimrc

答案 18 :(得分:0)

我目前使用的是OS X 10.9,而我用 + xterm_clipboard 编译vim的努力并没有带来什么。所以我目前的解决方案是在我的〜/ .vimrc文件中使用MacVim in terminal modeset clipboard=unnamed选项。适合我。

答案 19 :(得分:0)

当其他任何东西似乎工作时,在Mac上

- 用鼠标选择,右键单击选择复制。 UFF

答案 20 :(得分:0)

我的.vimrc

对我有用
set clipboard=unnamed
if has("unnamedplus") " X11 support
    set clipboard+=unnamedplus
endif

答案 21 :(得分:0)

对于Mac用户-在选择文本时按住option键,然后按住ctrl V键就可以了。

答案 22 :(得分:0)

Shift cmd c –设置复印模式 拖动鼠标,选择文本,使用cmd c复制所选文本 Cmd v粘贴

答案 23 :(得分:-1)

使用注册'+'或'*'复制到剪贴板不起作用?

原因:您的特定版本的vim是在没有剪贴板支持的情况下编译的。在控制台上键入vim --verion,您将看到 -xterm_clipboard 。使用gui包安装vim解决了这个问题。在ubuntu上,您可以通过在shell上输入来执行此操作:

sudo apt-get install vim-gui-common

现在再次在控制台上执行vim --version。最有可能的是,你现在会看到 + xterm_clipboard !!

所以,现在你可以使用寄存器+将任何东西复制到剪贴板(比如“+ yy将当前行复制到剪贴板”)

答案 24 :(得分:-1)

对于Ubuntu用户,要使用剪贴板检索的包是vim-full。其他软件包(vim-tiny,vim)不包括剪贴板功能。

答案 25 :(得分:-1)

我遇到同样的问题,安装后macvim仍无法正常工作,最后我找到了解决问题的方法:

首先尝试卸载所有vim,

brew uninstall macvim

brew uninstall --force vim

并重新安装macvim

brew install macvim --with-override-system-vim

然后您可以使用"*y"+y,不必set clipboard=unnamed

答案 26 :(得分:-2)

在MacVim和终端中,Command-c适用于我。