我在Vim中选择了一个区域。如何将其复制到OS X剪贴板中?
(通过管道写入/usr/bin/pbcopy
可以将内容写入OS X剪贴板)
对于 MacVim 和 Windows Gvim,只需将以下内容添加到您的 ~/.vimrc
文件中:
set clipboard=unnamed
现在所有操作例如yy
、D
和P
都可以使用剪贴板,不需要在它们前面加上"*
或"+
。
-v
标志(mvim -v
)来使用它。我将其别名设置为 vim 和 mvim。 - pk-nb:echo has("clipboard")
返回值为 1
,也就是 MacVim 的情况,并且我有一个运行 mvim -v
的 vi
别名,那么这个答案应该被接受。 - jdsumsion:version
显示 -clipboard
,那么 Vim 的版本不支持剪贴板功能。我在谈论 MacVim,它是一个 GUI 应用程序。 - George V. Reilly"*y
将选定区域复制到剪贴板。vim --version
并查找+clipboard
或-clipboard
。例如,默认情况下,在我的10.5.6框上未启用:+clipboard
编译,则可以使用"*
寄存器访问系统剪贴板。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) 由rampion@Myrrhy.local编译 普通版本,带有GTK2图形用户界面。包括的特性(+)或不包括的特性(-): ... +clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments ...
然而,在终端应用程序中运行vim时,即使编译过了,我仍然无法复制到剪贴板,只能在X11.app中复制。
:echo has("clipboard")
。如果显示为0,则表示未编译。如果显示为1,则表示已编译。 - ravronbrew install vim
。 - Anton Koval'vim
而不是vi
,因此vi
仍然会启动OS X中包含的vim。我花了一段时间才弄清楚为什么剪贴板仍然无法工作。 - Johann+clipboard
的版本,但是又安装了启用了+x11
的--with-client-server
版本,在macOS终端中的vim中尝试在X11中进行复制/粘贴操作失败了 :) 我不得不重新安装没有+clientserver
的版本。 - jacwah你可以在可视模式下选择文本并输入:w !pbcopy<CR>
或者,你可以将以下关键映射包含在你的~/.vimrc
文件中。它们会将在可视模式下剪切/复制的文本保存到操作系统的剪贴板中。
vmap <C-x> :!pbcopy<CR>
vmap <C-c> :w !pbcopy<CR><CR>
"+
寄存器仅存在于 X11(除非您使用 +X11 支持构建 vim,在 OS X 中这将安装 X11 服务器 XQuartz),而 OS X 不使用 X11 作为其窗口系统。 - nn0pvim
和macvim
都有+clipboard
,并且在~/.vimrc
中添加了clipboard=unnamed
,该怎么办?看起来很麻烦,尝试了所有解决方法,目前不得不使用spacemacs,当我知道我必须使用全局剪贴板时 :) - Nikolay Fominyhvnoremap <silent><leader>y :<CR>:let @a=@" \| execute "normal! vgvy" \| let res=system("pbcopy", @") \| let @"=@a<CR>
- hoodslide在任何复制命令之前添加双引号星号 ("*) 将结果复制到剪贴板中。这也适用于Windows和Linux。
在macOS 10.8上,vim编译时使用了-clipboard
选项,因此要使用"*y
命令需要重新编译。幸运的是,brew install vim
将为您轻松编译新版本,并且它将包含+clipboard
选项。
vi
而不是vim
来安装brew install vim
。因此,在使用Homebrew安装vim之后,您可能需要以不同的方式设置别名。 - shridharama可视化选择文本,然后键入:
ggVG
!tee >(pbcopy)
我觉得比起下面这种更好:
ggVG
:w !pbcopy
由于它不会闪现提示:“按ENTER或键入命令以继续”
如果你使用 MacPorts,你可以通过以下方式升级 VIM 以包含剪贴板支持:
port install vim +x +x11
现在您可以使用"+
寄存器将文本直接复制到您的Mac剪贴板上。非常方便。
$ brew install vim
$ vim --version
VIM - Vi IMproved 7.4 [...]
set clipboard=unnamed
:%y
命令,即可将所有内容复制到剪贴板中。
"+y
命令。 - zx1986+clipboard
或者+xterm-clipboard
。你可以通过运行vim --version | grep clipboard
来验证这一点。你可以通过brew install vim --with-client-server
来解决这个问题。 - LondonRob~/bin
下,然后将~/bin
插入到你的路径中,优先于系统安装的vim和其同义词。 - the Tin Man/.bashrc中,以便将vi/vim别名为MacVim的终端模式:/.vimrc中,映射Ctrl+c(而不是Cmd+c):alias vi='mvim -v'
2)将以下内容添加到vnoremap <C-c> "+y
3)配置Keyboard Maestro在终端中运行时键入键序列^c
(Ctrl+C)(在我的情况下是iTerm2)这使得可以使用Cmd+c将文本复制到OSX剪贴板中,以便在其他OSX应用程序中粘贴。 - Neil Griffin