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

那么这可能吗?


当前回答

如果您的手指默认使用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>。

其他回答

我尝试了上面人们提到的一些命令。没有工作。 然后我找到了其中最简单的一个。

步骤1:vi <filename> 第二步:右键单击Putty窗口的标题栏 步骤3:选择“清除屏幕”(以避免复制SSH会话的其余部分) 第四步:再次右键单击并选择“复制所有到剪贴板”。

如果你在使用VI时遇到问题,另一种简单的复制整个文件的方法就是输入“cat filename”。它会将文件回显到屏幕上,然后你可以上下滚动并复制/粘贴。

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

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

对于Cygwin的vim,我使用

:%!putclip
u

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

非常简单的办法:

如果你在Windows中,想要将整个文本复制到本地剪贴板,而不是你正在使用的远程服务器缓冲区,不需要任何额外的工具,只需:

放大,在屏幕上看到整个文件文本 用鼠标选择它们,然后右击复制到您的本地剪贴板

注1:现在在许多终端(如窗口终端)上,你可以用ctrl++/ctrl+-放大/缩小,用ctrl+0重置缩放大小

注2:如果你的vim是编号文件行,你可以:设置nonnumber

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