当前位置:  开发笔记 > 运维 > 正文

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

如何解决《Vim:将选择复制到OSX剪贴板》经验,为你挑选了11个好方法。

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

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



1> George V. Re..:

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

set clipboard=unnamed

现在所有的操作,如yy,, DP剪贴板一起工作.不需要用"*或者加上前缀"+.


这也适用于最近7.3+版本的vim(shell).
正如@VincentG在上面的评论中提到的,这确实适用于基于终端的Vim版本,但在终端中使用tmux的那些将需要遵循这里详述的解决方案之一:http://stackoverflow.com/a/11421329/456584
这应该是公认的答案 - 只要`:echo has("clipboard")`````,这就是MacVim的情况,我有一个`vi`别名,运行`mvim -v`代替
我整个上午花了很多时间来弄清楚如何从⌘-C和⌘-V中分离出y,d和P命令,MacVim为你启用了这些命令,并最终遇到了这个问题.果然,当我还是一个vim少年时,我把它添加到了我的vimrc中,从那以后它一直让我感到沮丧.
对于MacVim的新用户,它可以从终端使用`-v`标志(`mvim -v`).我有别名的vim和mvim.

2> rampion..:

如果启用了剪贴板,则可以通过点击将所选区域复制到剪贴板 "*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源代码并编译它(简单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中.


比通常很长的功能列表中搜索"剪贴板"这个词要容易一些:做`:echo has("clipboard")`.如果它显示为0,则表示未编译.如果显示为1,则为.
谨防!我有一个`+ clipboard`版本,但安装了`--with-client-server`,启用`+ x11`,并尝试在macOS上的终端vim中复制/粘贴到x11不起作用:)我不得不没有`+ clientserver`重新安装.
我用+剪贴板编译了最新版本,现在本机剪贴板使用它作为*寄存器.此外,在.vimrc文件中设置"set clipboard = unnamed"会使系统剪贴板成为典型的剪贴板.我实际上使用http://github.com/adamv/homebrew/blob/duplicates/Library/Formula/vim.rb这个自制公式来构建和编译它.
你也可以使用自制软件使用剪贴板编译vim:`brew install vim`

3> user242065..:

您可以直观地选择文本和类型 :w !pbcopy

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

vmap  :!pbcopy  
vmap  :w !pbcopy 

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


您还可以从命令行中选择文本,例如:1,10w!pbcopy将第1-10行复制到剪贴板.w与其后的空间很重要,以保持原始文本的位置.上面的源链接现在已经破了,但这里有一个讨论:http://vim.wikia.com/wiki/Mac_OS_X_clipboard_sharing
请注意,这似乎只适用于选择整行.如果您只想选择一行的一部分,它似乎不起作用.http://stackoverflow.com/questions/16196826/how-to-filter-visual-selection

4> Chris AtLee..:

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

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


对于没有+剪贴板编译VIM的人来说,上面的链接是一个很好的资源,可以提供无需重新编译VIM的解决方法
+仅适用于X11?

5> Paul Tomblin..:

"*在任何yank命令之前双引号asterisk()会将结果拉入复制缓冲区.这适用于Windows和Linux.


只是似乎发出一个铃铛字符,对我来说没有其他影响
在X11中,Vim的"*是PRIMARY",+是CLIPBOARD,而SECONDARY没有得到命名寄存器.(不是说有人用它......)

6> nikola..:

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



7> James Scrive..:

从视觉上选择文本并键入:

ggVG
!tee >(pbcopy)

我觉得比以下更好:

ggVG
:w !pbcopy

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



8> Matt Hughes..:

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

port install vim + x + x11

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



9> Telmo Dias..:

在我的情况下,我只需要这样做:

:set mouse=v

请访问superuser.com上的原始解决方案



10> Jose Alban..:

如果您使用的是MacOS X:

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

然后,添加到.vimrc:

set clipboard=unnamed

现在你只需要进入vim:%y可以将所有内容复制到剪贴板中.



11> Evan..:

使用自制软件的 vim:brew install vim

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

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

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

您会看到类似以下内容:

$ /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

有了自制软件,您反而会得到

$ /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

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有