是否可以直接从Vim复制到剪贴板?yy只把东西复制到Vim的内部缓冲区。我想复制到操作系统的剪贴板。在Vim中有这样的命令吗?或者你只能在Vim中提取东西?


当前回答

对于OSX,就像上面的10342个答案所表明的那样,你需要确保vim支持剪贴板功能,并且OSX预发布的那个不支持剪贴板,如果你运行 酿造安装vim它将工作。

除了运行vi仍然会让你运行预先发布的OSX版本,而不是你从brew安装的版本。

为了解决这个问题,我简单地将我的vim命令别名为酿造版本,而不是OSX的默认版本:

alias vim="/usr/local/Cellar/vim/8.0.1100_1/bin/vim"

现在我是金的

其他回答

除了vim-gnome, Ubuntu 20.04的neovim默认也支持+y。

如果你不想安装一个新程序,你可以使用cat file.txt或gedit file.txt的惰性方法从那里复制。

你可以在这里找到答案 拱维基

Linux: 首先,你必须通过安装在你的vim版本中启用剪贴板 gvim。


接下来,您必须将这一行放到.vimrc文件中。

设置剪贴板= unnamedplus

Shift + Ctrl + C 如果你在Linux的图形模式,但首先你需要选择你需要复制什么。

此答案包含特定于macOS用户的详细信息。

将以下行追加到~/.vimrc:

set clipboard=unnamed

如果这不起作用,检查您安装的版本是否可能没有启用剪贴板功能。在编写这个答案时(2019年),macOS附带的默认vim没有启用剪贴板选项。您需要该选项来访问系统剪贴板。

要检查您的vim是否启用了该选项,请使用以下命令

vim --version | grep clipboard

结果,你应该有+剪贴板。如果是-clipboard,那么你的VIM没有访问系统剪贴板的选项。

您需要使用所需的选项制作并安装VIM。下面是命令。

# Create the directories you need
$ sudo mkdir -p /opt/local/bin
# Download, compile, and install the latest Vim
$ cd ~
$ git clone https://github.com/vim/vim.git
$ cd vim
$ ./configure --prefix=/opt/local
$ make
$ sudo make install
# Add the binary to your path, ahead of /usr/bin
$ echo 'PATH=/opt/local/bin:$PATH' >> ~/.bash_profile
# Reload bash_profile so the changes take effect in this window
$ source ~/.bash_profile"

上面的操作将安装启用选项+剪贴板的最新VIM。

现在您可以将文本拉到系统剪贴板。下面的步骤解释如何拉。

在vim命令模式下按v,这将切换到VISUAL模式。 移动光标以选择需要复制的文本或行。 按y,这将复制选定的文本到剪贴板。 转到任何外部应用程序,CMD + v进行粘贴。

我使用macOS Mojave的MACBook Pro,上面的工作都在里面。

总结一下,让新手更容易上手,

复制当前行,在命令模式输入:

"*yy

要复制整个文件/缓冲区,在命令模式下,首先通过gg转到开头,然后键入

"*yG

如上所述,这需要vim——version中的+clipboard,这表示支持剪贴板,-clipboard表示不支持。