是否有任何方法复制所有行从打开的文件到VI编辑器剪贴板。我试过yG,但它没有使用剪贴板来存储这些行。

那么这可能吗?


当前回答

我在PowerShell中使用Vim,当我需要将一小段代码复制到windows剪贴板时;

我使用:set nonnumber来删除行号,然后用游标和右键单击在视觉上选择代码。然后我用Ctrl + V将它粘贴到任何我想要的地方。

其他回答

(回复@rshdev,并避免在OP的注释中使用@nelstrom +xterm_clipboard重新编译vim)

在Ubuntu 11上有一个叫xclip的程序,它的工作原理类似于putclip:

:%!xclip -sel clip
u

默认情况下不会安装。安装方法:

sudo apt-get install xclip

在Bill Joy的vi中没有“剪贴板”的概念,所以我不认为有内置的方法来做到这一点。

gVim的自动复制任何高亮显示到剪贴板的功能是最简单的或使用外部程序通过:!

对于Cygwin的vim,我使用

:%!putclip
u

也许Ubuntu有一个CLI应用程序,比如putclip??

我已经创建了一个函数来执行这个操作,把它放在~/.vimrc上。

fun! CopyBufferToClipboard()
    %y+
endfun
nnoremap <Leader>y :call CopyBufferToClipboard()<CR>
command! -nargs=0 CopyFile :call CopyBufferToClipboard()

OBS:如果你正在使用neovim,你还需要一些剪贴板管理器,比如xclip。有关更多信息,请在neovim中键入:h checkhealth

同样重要的是要提到的是,并不总是简单的y会复制到剪贴板,为了使每次复制feed + wich是“剪贴板寄存器”尝试set::set clipboard=无名,无名加。更多信息见::h未命名。

这里有更多关于vim wikia的信息。

你可以按下gg将光标定位到文件的开头,然后按yG将所有内容从开始到结束(G定位)复制到缓冲区。好运!

我在我的.vimrc中添加了以下一行

nnoremap <F5> :%y+<CR>

这允许我通过按F5(在命令模式下)将Vim中的所有文本复制到剪贴板。