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


当前回答

我不能复制到剪贴板的系统中,因为我的~/中有这个。vimrc文件:

 if has('mouse')
   set mouse=a
 endif

但如果你接下来添加这一行,它将允许你简单地按Ctrl+c将你所选择的任何东西放入剪贴板。

vmap <C-c> "+y

原始讨论和更多详细信息:启用set mouse=a从vim中复制文本

其他回答

此答案包含特定于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,上面的工作都在里面。

我的解决方案是安装额外的vim,包括剪贴板选项:

sudo apt-get install vim-gnome

以上这些在我的windows笔记本电脑上都不起作用。

Ctrl+C可以用于复制。但我需要 Shift+插入到粘贴!

(一个很好的理由,总是有一个笔记本电脑,可以随时插入,而不需要按第二个键)

在Mac OSX上

复制所选部分:可视选择文本(正常输入v或v) 模式)和类型:w !pbcopy 复制整个文件:%w !pbcopy 从剪贴板粘贴:r !pbpaste

在大多数Linux发行版上,你可以替换:

用xclip -i -sel c或xsel -i -b拷贝上面的内容 使用xclip -o -sel -c或xsel -o -b进行Pbpaste 注意:如果这些工具(xsel和xclip)都没有预先安装在你的发行版上,你可以在回购中找到它们

我的解决方案是把下面的行放在。vimrc:

map <C-y> :w !xclip -sel c <CR><CR>

脚本使用Ctrl + y将所选的行(通过可视模式)或文件内容(如果没有被选择)复制到剪贴板。如果这很重要,我使用的是Manjaro Linux。