使用GNU Screen时,我们可以使用命令使用回滚缓冲区,也称为“复制模式”Ctrl+a+[
。
在那里,我们可以通过按下选择文本并再次按下来将文本复制到复制缓冲区。space
space
有没有办法将此文本从屏幕复制缓冲区复制到 X 剪贴板?
在我的例子中,我使用 Ubuntu 12.04 和 gnome 和 Xorg。
使用GNU Screen时,我们可以使用命令使用回滚缓冲区,也称为“复制模式”Ctrl+a+[
。
在那里,我们可以通过按下选择文本并再次按下来将文本复制到复制缓冲区。space
space
有没有办法将此文本从屏幕复制缓冲区复制到 X 剪贴板?
在我的例子中,我使用 Ubuntu 12.04 和 gnome 和 Xorg。
您可以使用 CLI 剪贴板工具(如xsel
or )pbpaste
和cat
实用程序从 STDIN 中获取内容。Linux 上的步骤xsel
如下:
cat | xsel -b
xsel
没有报告任何错误,现在将屏幕的复制缓冲区转储到 STDIN:Ctrl+a+]
cat
以终止它:Ctrl+d
此时,屏幕复制缓冲区的内容应该在剪贴板中。
编辑:与所有 X 程序一样,xsel
需要知道如何联系 X 服务器才能访问剪贴板。您应该DISPLAY
适当地设置环境变量。
此答案仅适用于您的最终目标是立即粘贴复制的缓冲区内容的情况。
最简单的方法是将屏幕分成两个区域。你可以通过点击CTRL+a然后|'这不是一个i来做到这一点。这是键盘上的 PIPE 标志'
点击CTRL+a然后TAB切换到第二个区域,然后点击CTRL+在第二个区域中创建一个新会话。ac
如果要从 nano 复制并粘贴到终端,请在左侧区域的 nano 中打开文件,点击CTRL+a然后ESC,滚动到复制位置的起点并点击SPACE,通过滚动到终点选择文本并点击SPACE再次标记副本。
现在,您所要做的就是点击CTRL+ athenTAB切换到您右侧的区域并点击CTRL+ athen ]。
您的文本将被写入命令行。请注意,如果您想直接写入文件,也可以检查硬拷贝选项。
这个答案适用于 OS X。
使用复制模式将所需文本复制到 GNU Screen 粘贴缓冲区后,请执行以下操作:
pbcopy <enter>
.Ctrl-a ]
除非您更改了转义键)。<enter>
插入一个。Ctrl-d
将pbcopy
文本推送到系统剪贴板。Command-v
然后,您可以像往常一样使用或等效的菜单选项将文本粘贴到 OS X 的其他位置。
有一种更简单、更少手动的方法可以做到这一点。在您的屏幕 .rc 文件中,添加以下行:
bindkey -m ' ' eval 'stuff \040' 'writebuf' 'exec sh -c "/usr/bin/pbcopy < /tmp/screen-exchange"'
如何使用复制功能:
screen -c path/to/screen/config.rc
编辑:在没有 pbcopy 但有 clipit 的 Linux 上,您可以使用如下:
bindkey -m ' ' eval 'stuff \040' 'writebuf' 'exec sh -c "/bin/cat /tmp/screen-exchange | /bin/clipit"'
由于似乎没有人直接回答这个问题:
将所需的输出复制到缓冲区后,您需要
vim somefile.txt
i
在 vim 中Ctrl + a
然后]
将您刚刚填充的缓冲区的内容转储到文本编辑器中达达!
我想要一种类似于@kungfuspider 的方式以编程方式执行此操作,并调整了他们的解决方案以适用于在 Windows 上运行的 Ubuntu WSL。
设置:
win32yank.exe
放在有用的地方(我在其中创建了一个符号/usr/bin
链接ln -s <path to exe> /usr/bin/win32yank
)~/.screenrc
(来自@kungfuspider)。您可能需要修改命令以指向正确的cat
位置win32yank
。bindkey -m ' ' eval 'stuff \040' 'writebuf' 'exec sh -c "cat /tmp/screen-exchange | win32yank -i --crlf"'
~/.screenrc
而不杀死您的会话CTRL+a
:
source ~/.screenrc
如何使用:
CTRL+a
[
space
space
,文本现在应该在您的 Windows 剪贴板中,并且可以通过右键单击将其粘贴回 Ubuntu。注意:使用 a 完成复制非常重要,space
因为这是该bindkey
命令用于映射的内容win32yank
如果您想要复制的只是一点点信息,只需用鼠标突出显示它,然后将其粘贴到您想要的位置。
如果您尝试获取大量信息,则可以将屏幕会话记录到文件中,然后您可以从文件中复制或清理一下,并将其用于操作说明
今天终于找到了一个鼠标解决方案:
按住Ctrl并用鼠标右键单击。显示复制/粘贴上下文菜单。
https://michalzuber.wordpress.com/2015/01/28/gnu-screen-copy-paste-with-mouse/上的一些屏幕