16

有什么方法可以将文件中的所有行复制到 VI 编辑器中的剪贴板。我已经尝试过SO中以前的帖子中的 、*yG和,但在 OS X 中没有任何作用。+yG"+yG:%y+

4

3 回答 3

35

Mac OS X 附带的默认 Vim/usr/bin/vi[m]编译时不支持剪贴板。

你有三个选择:

  1. pbcopy从命令行使用,不使用Vim

     $ cat filename | pbcopy
    
  2. pbcopy从 Vim使用

     :%w !pbcopy
    
  3. 获得您自己的带有剪贴板支持的 Vim

    您可以通过MacPortsHomebrew、下载MacVim从源代码构建来做到这一点。

使用特定寄存器的正确方法y"{register}y.

$ man pbcopy在您的终端和:help clipboardVim:help !中查看。

于 2012-07-26T07:30:28.627 回答
3

G只是意味着“转到文件末尾”,并且您需要在前面加上引号*+使它们作为剪贴板寄存器有效。您正在寻找更像的东西gg"*yG,这意味着:

gg- 转到文件顶部

"*- 使用*寄存器

y- 开始猛拉

G- 转到文件底部

或者您可以使用:!cat % | pbcopy与 romainl 提供的精细解决方案没有什么不同。

于 2012-07-26T12:42:02.237 回答
0

vim --版本 | grep 剪贴板,如果你看到“-clipboard”,你就不会那样做。你的 vim 不支持它。需要重新编译源代码。</p>

编译

$./configure \ --enable-gui=auto --with-features=huge --with-x
$ make && sudo make install
于 2014-08-18T08:46:19.410 回答