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

那么这可能吗?


当前回答

我不能用上面的答案复制文件,但我有腻子,我在Quora上找到了一个解决办法。

更改您的PuTTY会话设置,进入日志并将其更改为“可打印字符”。设置日志文件 做猫各自的文件 转到步骤#1中设置的文件,日志文件中将包含您的内容。

注意:它将该会话的所有打印字符复制到日志文件中,因此它最终会变得很大。在这种情况下,删除日志文件并删除目标文件,以便将特定文件的内容复制到您的计算机上。

其他回答

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

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

我在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

我已经创建了一个函数来执行这个操作,把它放在~/.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的信息。

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

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

使用gg" * yy。