Vim:将select复制到OS X剪贴板
假设你已经在vim中select了一个区域。 你怎么能把它复制到OS X剪贴板?
(提示:OS X剪贴板可以通过pipe道写入/usr/bin/pbcopy
)
根据我使用的vim版本,我可以使用+寄存器来访问剪贴板。
http://vim.wikia.com/wiki/Mac_OS_X_clipboard_sharing可能有一些想法也适合你。;
对于MacVim和Windows Gvim ,只需将以下内容添加到~/.vimrc
:
set clipboard=unnamed
现在,所有的操作,如yy
, D
和P
,与剪贴板一起工作。 不需要用"*
或"+
作为前缀。
如果剪贴板已启用,则可以通过点击"*y
将所选区域复制到剪贴板
要查看是否已启用,请使用vim –version并查找+clipboard
或-clipboard
。 例如,在我的10.5.6框中默认没有启用它:
%哪个vim 在/ usr / bin中/ VIM %vim --version VIM - Vi改进7.2(2008年8月9日,编译2008年11月11日17时20分43秒) 包含的修补程序:1-22 编译_www@b77.apple.com 没有GUI的正常版本。 function包括(+)或不( - ): ... -clientserver -clipboard + cmdline_compl + cmdline_hist + cmdline_info +评论 ...
如果它已经用+clipboard
编译,我可以使用"*
寄存器来访问系统剪贴板。
我下载了7.2源代码并编译了它(用tar xjf vim-7.2.tar.bz && cd vim72 && ./configure && make && sudo make install
),并且启用了剪贴板:
%哪个vim 在/ usr / local / bin目录/ VIM %vim --version VIM-Vi改进了7.2(2008年8月9日,编译Mar 24 2009 17:31:52) 由rampion@Myrrhy.local编译 GTK2 GUI的普通版本。 function包括(+)或不( - ): ... + clientserver +剪贴板 + cmdline_compl + cmdline_hist + cmdline_info +评论 ...
但是,即使在编译之后,在Terminal.app中运行vim时,我也无法复制到剪贴板,只能在X11.app中。
您可以直观地select文本并input:w !pbcopy<CR>
或者你可以在~/.vimrc
文件中包含下面的键映射。 他们以可视模式将文本剪切/复制到操作系统的剪贴板。
vmap <Cx> :!pbcopy<CR> vmap <Cc> :w !pbcopy<CR><CR>
来源: http : //drydevelopment.com/blog/vim-pbcopy-on-os-x
在任何yank命令之前加双引号( “ * )将结果复制到复制缓冲区中,这也适用于Windows和Linux。
在macos 10.8上,vim是用-clipboard
编译的,所以使用"*y
你需要重新编译。幸运的是brew install vim
会为你轻松编译一个新的版本,它将成为+clipboard
。
从视觉上select文字并input:
ggVG !tee >(pbcopy)
我发现比以下更好:
ggVG :w !pbcopy
由于它不闪烁提示:“按ENTER键或键入命令继续”
如果您使用MacPorts,则可以通过以下方式升级您的VIM以包含剪贴板支持:
端口安装vim + x + x11
现在,您可以使用“+注册”将您的文本直接拖放到Mac剪贴板上。
如果你在MacOS X上:
$ brew install vim $ vim --version VIM - Vi IMproved 7.4 [...]
然后,添加到您的.vimrc:
set clipboard=unnamed
现在只需要在vim中执行:%y
,将所有内容复制到剪贴板。
我只是试过了
map <Cx> :!pbcopy<CR> vmap <Cc> :w !pbcopy<CR><CR>
它工作得很好。
就我而言,我只需要做:
:set mouse=v
请访问superuser.com上的原始解决scheme
如果你的vim没有使用剪贴板编译,你希望复制选中的文本而不是整行,你不想安装macvim或其他GUI,最简单的解决办法就是将这行添加到你的.vimrc中:
map <Cc> y:e ~/clipsongzboard<CR>P:w !pbcopy<CR><CR>:bdelete!<CR>
要使用它,只需在视觉上select要复制的文本,然后selectControl-C。 如果你想完整的解释这一行, 请阅读这里
使用Homebrew的 vim: brew install vim
Mac(从10.10.3优胜美地开始)预装了一个没有启用clipboard
标志的系统vim。
您可以为自己编译vim并启用该标志,或者简单地使用正确设置的Homebrew的vim。
要亲自看到这个,使用/usr/bin/vim --version
检查库存系统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
命令-C? 这至less适用于在Terminal.app中为鼠标select的文本启动的vim。
Fakeclip实现了+和*缓冲区,如果它们不是本机支持。
如果您的VIM安装上有+剪贴板选项(您可以使用:版本进行检查),并且您处于可视模式,则可以执行“+ y这将把select内容推送到作为剪贴板的缓冲区。
我已经添加了下面的地图到我的vimrc,它工作正常。
vmap y“+ y用这个我可以做领导钥匙跟随由y复制到剪贴板以视觉模式
nmap p“+ p用这个我可以做领导键跟p按正常模式从剪贴板粘贴。
PD:在Ubuntu上,我必须安装vim-gtk来获得+剪贴板选项。
您可以在Mac上使用MacVim ,以使用标准操作系统密钥轻松访问剪贴板。
它也完全向后兼容正常的Vim,所以我甚至不必有一个单独的.vimrc
。
我的主要问题是VIM的默认osx版本。 通过homebrew安装它添加+clipboard
的build设。
检查
vim --version
如果它说-clipboard
或+clipboard
对于Ubuntu用户,您要使用剪贴板检索的软件包是vim-full。 其他软件包(vim-tiny,vim)不包括剪贴板function。
在Mac上,当其他东西似乎工作 – select与鼠标,右键单击select副本。 UFF
我目前在OS X 10.9和我的努力编译vim + xterm_clipboard没有给我带来什么。 所以我现在的解决scheme是在terminal模式下使用MacVim,在我的〜/ .vimrc文件中set clipboard=unnamed
了选项set clipboard=unnamed
。 为我完美的作品。
我遇到同样的问题,安装macvim
仍然不能正常工作,终于find了解决的办法:
尝试先卸载所有vim,
brew uninstall macvim
brew uninstall --force vim
并重新安装macvim
brew install macvim --with-override-system-vim
那么你可以使用"*y
或者"+y
,不必set clipboard=unnamed
使用寄存器“+”或“*”复制到剪贴板不起作用?
原因:您的特定版本的vim编译时没有剪贴板支持。在控制台上键入vim –verion,您将看到-xterm_clipboard 。 用gui包安装vim解决了这个问题。 在Ubuntu上你可以通过在shell上input来实现:
sudo apt-get install vim-gui-common
现在再次在控制台上执行vim –version。 最有可能的是,你现在将会看到+ xterm_clipboard !
所以,现在你可以使用寄存器+将任何东西复制到剪贴板(比如“+ yy将当前行复制到剪贴板)
Command-c适用于MacVim和terminal。