我在Vim中选择了一个区域。如何将其复制到OS X剪贴板?
(OS X剪贴板可以通过管道写入到/usr/bin/pbcopy)
我在Vim中选择了一个区域。如何将其复制到OS X剪贴板?
(OS X剪贴板可以通过管道写入到/usr/bin/pbcopy)
如果剪贴板已启用,您可以通过点击“*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中。
对于MacVim和Windows Gvim,只需在~/.vimrc中添加以下内容:
set clipboard=unnamed
现在所有的操作,如yy, D和P工作与剪贴板。不需要在前面加上“*”或“+”。
如果您正在使用MacPorts,您可以通过以下方式升级您的VIM以包括剪贴板支持:
port install vim +x +x11
现在你可以使用“+”寄存器将文本直接拉到Mac剪贴板上。效果非常好。
您可以直观地选择文本并键入: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
可视地选择文本和类型:
ggVG
!tee >(pbcopy)
我觉得这比:
ggVG
:w !pbcopy
因为它不会闪现提示符:“按ENTER或键入命令继续”
使用寄存器“+”或“*”复制到剪贴板不工作?
原因:你的特定版本的vim编译时没有剪贴板支持。在控制台输入vim——version,你会看到-xterm_clipboard。使用gui包安装vim可以解决这个问题。在ubuntu上,你可以在shell上输入:
Sudo apt-get install vim-gui-common
现在再做vim——控制台版本。最有可能的是,您现在将看到+xterm_clipboard !!
所以,现在你可以复制任何东西到剪贴板使用寄存器+(像“+yy复制当前行到剪贴板)
在macos 10.8上,vim是用-clipboard编译的,所以要使用"*y "你需要 编译。幸运的是,brew install vim可以为您轻松编译一个新版本 然后是+clipboard。
如果你的Vim没有使用剪贴板编译,你希望复制选定的文本而不是整行,你不想安装MacVim或其他GUI,最简单的解决方案是将这一行添加到你的。vimrc:
map <C-c> y:e ~/clipsongzboard<CR>P:w !pbcopy<CR><CR>:bdelete!<CR>
要使用它,只需直观地选择你想要复制的文本,然后Control-C。如果你想要一个完整的解释这一行阅读“如何复制到剪贴板上的vim”。
我目前在OS X 10.9上,我用+xterm_clipboard编译vim的努力没有给我带来任何东西。所以我目前的解决方案是在终端模式下使用MacVim,选项设置clipboard= named在我的~/。vimrc文件。很适合我。
我的主要问题是Vim的默认OSX版本。安装它通过自制添加+剪贴板到构建。
你可以查询:
vim --version
看看它说的是-clipboard还是+clipboard。
使用Homebrew的vim: brew安装vim
Mac(从10.10.3 Yosemite开始)预装了一个系统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
而使用homebrew的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 ...
注意+剪贴板
如果你使用的是MacOS X:
$ brew install vim
$ vim --version
VIM - Vi IMproved 7.4 [...]
然后,添加到你的。vimrc:
set clipboard=unnamed
现在您只需要在vim中执行:%y,将所有内容复制到剪贴板。
如果你在Vim安装中有+剪贴板选项(你可以用:version检查),并且你在可视模式下,你可以执行“+y”,这将把选择拉到缓冲区+,即剪贴板。
我已经添加了以下地图到我的vimrc,它工作正常。
Vmap <leader>y "+y :用这个,我可以用先导键和y在可视模式下复制到剪贴板。
Nmap <leader>p "+p :用这个,我可以用领导键和p从剪贴板粘贴在普通模式。
PD:在Ubuntu上,我必须安装vim-gtk才能获得+剪贴板选项。
我也遇到了同样的问题,在安装macvim后仍然不能工作,最后我找到了解决的方法:
尝试先卸载所有的vim,
酿造卸载macvim
酿造卸载——强制vim
重新安装macvim
使用-override-system-vim编译安装macvim
然后你可以使用“*y”或“+y”,不必设置clipboard= named
在我的。vimrc中什么对我有用
set clipboard=unnamed
if has("unnamedplus") " X11 support
set clipboard+=unnamedplus
endif
使用映射的最佳方法。
例如:
nnoremap C "+y
vnoremap C "+y
nnoremap cC ^"+y$
这将把大写C映射到剪贴板中,而不改变任何东西。工作与任何vim。