我在 Vim 中选择了一个区域。如何将其复制到 OS X 剪贴板?
(可以通过管道将 OS X 剪贴板写入到/usr/bin/pbcopy
)
对于MacVim和 Windows Gvim,只需将以下内容添加到您的~/.vimrc
:
set clipboard=unnamed
现在,所有操作,如yy
、D
和 ,P
都可以使用剪贴板。无需在它们前面加上"*
or "+
。
如果启用了剪贴板,您可以通过点击将选定区域复制到剪贴板"*y
要查看它是否已启用,请运行vim --version
并查找+clipboard
or -clipboard
。例如,在我的 10.5.6 机器上默认情况下未启用它:
% 哪个 vim /usr/bin/vim % vim --版本 VIM - Vi IMproved 7.2(2008 年 8 月 9 日,2008 年 11 月 11 日 17:20:43 编译) 包含的补丁:1-22 _www@b77.apple.com 编译 没有图形用户界面的普通版。 包含 (+) 或不包含 (-) 的功能: ... -clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments ...
如果它是用 编译的+clipboard
,我就可以使用"*
寄存器来访问系统剪贴板。
我下载了7.2 的源代码并编译了它(easy as tar xjf vim-7.2.tar.bz && cd vim72 && ./configure && make && sudo make install
),并启用了剪贴板:
% 哪个 vim /usr/local/bin/vim % vim --版本 VIM - Vi IMproved 7.2(2008 年 8 月 9 日,2009 年 3 月 24 日 17:31:52 编译) 由 rampion@Myrrhy.local 编译 带有 GTK2 GUI 的普通版本。 包含 (+) 或不包含 (-) 的功能: ... +clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments ...
但是,即使在编译之后,我在 Terminal.app 中运行 vim 时也无法复制到剪贴板,只能在 X11.app 中。
您可以直观地选择文本和类型:w !pbcopy<CR>
或者,您可以在~/.vimrc
文件中包含以下键映射。他们以可视模式剪切/复制文本到操作系统的剪贴板。
vmap <C-x> :!pbcopy<CR>
vmap <C-c> :w !pbcopy<CR><CR>
根据我使用的 Vim 版本,我可以使用+
寄存器来访问剪贴板。
“ Mac OS X 剪贴板共享”可能也有一些对你有用的想法。
"*任何 yank 命令之前的双引号星号 ( ) 会将结果拉入复制缓冲区。这也适用于 Windows 和 Linux。
在 macos 10.8 上,vim 是用编译的,-clipboard
所以要使用"*y
你需要重新编译。幸运的是brew install vim
,它会为您轻松编译一个新版本,它将是+clipboard
.
直观地选择文本并键入:
ggVG
!tee >(pbcopy)
我觉得比:
ggVG
:w !pbcopy
由于它不会出现提示:“按 ENTER 或键入命令继续”
如果您使用的是 MacPorts,您可以通过以下方式升级您的 VIM 以包括剪贴板支持:
port install vim +x +x11
现在您使用"+
寄存器将文本直接拉到您的 Mac 剪贴板。奇迹般有效。
如果您使用的是 MacOS X:
$ brew install vim
$ vim --version
VIM - Vi IMproved 7.4 [...]
然后,添加到您的 .vimrc:
set clipboard=unnamed
现在您只需要在vim中执行:%y
,即可将所有内容复制到剪贴板。
如果你的 Vim 没有用剪贴板编译,你希望复制选定的文本而不是整行,你不想安装 MacVim 或其他 GUI,最简单的解决方案是将此行添加到你的 .vimrc:
map <C-c> y:e ~/clipsongzboard<CR>P:w !pbcopy<CR><CR>:bdelete!<CR>
要使用它,只需直观地选择要复制的文本,然后Control- C。如果您想了解此行的完整说明,请阅读“如何在 vim 上复制到剪贴板”。
使用Homebrew 的vim:brew install vim
Mac(从 10.10.3 Yosemite 开始)预装了一个没有clipboard
启用标志的系统 vim。
您可以自己编译 vim 并启用该标志,或者简单地使用正确设置的 Homebrew 的 vim。
要亲自查看,请查看库存系统 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
使用 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 ...
注意+clipboard
我用了:
map <C-x> :!pbcopy<CR>
vmap <C-c> :w !pbcopy<CR><CR>
它工作得非常好。
当您在 Mac 上时,您可以使用MacVim使用标准 OS 键轻松访问剪贴板。
它也完全向后兼容普通的 Vim,所以我什至不需要单独的.vimrc
.
命令-C?这至少适用于从 Terminal.app 内启动的 vim,用于使用鼠标选择的文本。
如果本机不支持Fakeclip+
和缓冲区,则它们将实现。*
我的主要问题是 Vim 的默认 OSX 版本。+clipboard
通过添加到构建中的自制软件安装它。
您可以通过以下方式检查:
vim --version
看看它是否说-clipboard
或+clipboard
。
如果您+clipboard
在 Vim 安装中有选项(您可以使用 进行检查:version
)并且您处于可视模式,您可以这样做"+y
这会将选择拉到+
剪贴板的缓冲区。
我已将以下地图添加到我的 vimrc 中,它工作正常。
vmap <leader>y "+y
:有了这个,我可以在可视模式leader key
下y
复制到剪贴板。
nmap <leader>p "+p
:有了这个,我可以在正常模式下从剪贴板粘贴leader key
。p
PD:在 Ubuntu 上,我必须安装 vim-gtk 才能获得该+clipboard
选项。
我目前在 OS X 10.9 上,我用+xterm_clipboard编译 vim 的努力没有给我带来任何结果。所以我目前的解决方案是在终端模式下使用 MacVim,set clipboard=unnamed
并在我的 ~/.vimrc 文件中添加选项。非常适合我。
什么对我有用.vimrc
set clipboard=unnamed
if has("unnamedplus") " X11 support
set clipboard+=unnamedplus
endif
对于 Mac - 按住option
键,然后ctrl V
选择文本就可以了。
Shift cmd c – 设置复制模式 拖动鼠标,选择文本, cmd c 复制选定文本 Cmd v 粘贴
使用映射的最佳方式。
例如:
nnoremap C "+y
vnoremap C "+y
nnoremap cC ^"+y$
这会将大写 C 映射到剪贴板,而不更改任何内容。适用于任何 vim。
对于 Ubuntu 用户,您要使用剪贴板检索的包是 vim-full。其他软件包(vim-tiny、vim)不包括剪贴板功能。
使用寄存器“+”或“*”复制到剪贴板不起作用?
原因:您的特定版本的 vim 是在不支持剪贴板的情况下编译的。在控制台上键入 vim --verion ,您将看到-xterm_clipboard。使用 gui 包安装 vim 解决了这个问题。在 ubuntu 上,您可以通过在 shell 上键入来执行此操作:
sudo apt-get install vim-gui-common
现在再次在控制台上执行 vim --version 。很可能,您现在会看到+xterm_clipboard!
因此,现在您可以使用寄存器 + 将任何内容复制到剪贴板(例如“+yy 将当前行复制到剪贴板)
在 Mac 上,当其他任何东西似乎都起作用时 - 用鼠标选择,右键单击选择副本。呜呜
我遇到了同样的问题,安装后macvim
仍然无法正常工作,最后我找到了解决方法:
尝试先卸载所有vim,
brew uninstall macvim
brew uninstall --force vim
并重新安装 macvim
brew install macvim --with-override-system-vim
然后你可以使用"*y
or "+y
,不必set clipboard=unnamed
Command-c 在 MacVim 和终端中都适用于我。