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

那么这可能吗?


当前回答

你应该把文本拉到*或+寄存器:

加贝*孝媛”

解释:

Gg将光标移到文件的第一个字符 *y从第一行开始执行yank命令到寄存器*,直到… G到文件的末尾

其他回答

剪贴板为buffer +。要复制到剪贴板,请执行“+y和[移动]”。

gg"+yG会复制整个文件。

类似地,要从剪贴板粘贴,“+p

虽然上面的许多答案都很出色,但没有一个解决方案适合我,因为我使用的是Ubuntu 16.04附带的默认VIM安装,并且默认没有安装剪贴板选项。我还想把文本粘贴到一个外部程序中。

解决方案:Ubuntu的默认终端允许你通过点击编辑然后全选来高亮显示全部内容。

下面是一个映射命令,使用CTRL+a选择所有到剪贴板:

"
" select all with control-a
"
nnoremap <C-a> ggmqvG"+y'q

将它添加到你的.vimrc,你就可以开始了…

我知道这个问题应该用十年时间来解决,但前两个答案对我来说不管用,所以我继续研究。在Redhat(远程服务器)- Windows 10(本地机器)上,如果你不能用鼠标选择全部内容,你就会卡住,因为通常的副本在远程和本地机器剪贴板之间不起作用。

因此,要在远程Linux上复制并粘贴到本地Windows上,请使用*指定主缓冲区并执行一个漂亮的双重yank

使用gg" * yy。

如果您的手指默认使用CTRL-A CTRL-C,那么尝试从$VIMRUNTIME/mswin.vim映射。

" CTRL-C and CTRL-Insert are Copy
vnoremap <C-C> "+y

" CTRL-A is Select all
noremap <C-A> gggH<C-O>G
inoremap <C-A> <C-O>gg<C-O>gH<C-O>G
cnoremap <C-A> <C-C>gggH<C-O>G
onoremap <C-A> <C-C>gggH<C-O>G
snoremap <C-A> <C-C>gggH<C-O>G
xnoremap <C-A> <C-C>ggVG

我将它们映射到<Leader><C-a>和<Leader><C-c>。