如何将GNU屏幕拷贝缓冲区复制到剪贴板
当使用GNU Screen时,我们可以使用Ctrl+a+[
命令来处理也称为“复制模式”的 回滚缓冲区 。
在那里,我们可以通过按space
select文本并再次按space
来将文本复制到复制缓冲区 。
有没有办法将这个文本从屏幕复制缓冲区复制到X剪贴板?
在我的情况下,我使用GNOME和Xorg的Ubuntu 12.04。
您可以使用CLI剪贴板工具(如xsel
或pbpaste
和cat
实用程序从STDIN中获取内容。 使用xsel
Linux上的步骤如下所示:
- 将屏幕会话中的文本复制到GNU屏幕的复制缓冲区中。
- 在屏幕中运行此命令:
cat | xsel -b
cat | xsel -b
- 如果
xsel
没有报告任何错误,现在转储屏幕的复制缓冲区到STDIN:Ctrl+a+]
- 发送一个EOF给
cat
来终止它:Ctrl+d
此时,屏幕拷贝缓冲区的内容应该在剪贴板中。
编辑:与所有X程序一样, xsel
需要知道如何联系您的X服务器才能访问剪贴板。 你应该有适当的设置你的DISPLAY
环境variables。
有一个更简单和不太人工的方法来做到这一点。 在屏幕的.rc文件中,添加以下行:
bindkey -m ' ' eval 'stuff \040' 'writebuf' 'exec sh -c "/usr/bin/pbcopy < /tmp/screen-exchange"'
如何使用复制function:
-
screen -c path/to/screen/config.rc
- 按Ctrl + A,然后按Esc进入复印模式。
- 向上滚动文本缓冲区,find想要离开开始标记进行复制的点,然后点击空格。
- 向下滚动并select您想要复制的文本。 当你完成后,再次点击空间。
- 文本现在将在剪贴板中。
这个答案适用于OS X.
使用复制模式将所需文本复制到GNU屏幕粘贴缓冲区后,执行以下操作:
- 在任何屏幕窗口中,input
pbcopy <enter>
。 - 然后使用GNU屏幕粘贴命令 (
Ctrl-a ]
将您的文本粘贴到terminal中,除非您更改了转义键)。 - 如果文本不以换行符结束,请按
<enter>
键插入一个。 - 最后,按
Ctrl-d
使pbcopy
将文本推送到系统剪贴板。
然后,您可以照常使用Command-v
或等效的菜单选项将文本粘贴到OS X中的其他地方。
此答案仅适用于您的最终目标是立即粘贴复制的缓冲区内容的情况。
最简单的方法是将屏幕分成两个区域。 您可以通过按CTRL + a来执行此操作 “这不是我。 这是键盘上的PIPE标志
按CTRL + a然后TAB切换到第二个区域, CTRL + a然后c在第二个区域创build一个新的会话。
如果你想从nano复制并粘贴到terminal,打开左边区域的纳米文件,点击CTRL + a然后ESC ,滚动到你的复制位置的起始点,点击空格键 ,select文本滚动到结束点,再次打空格标记复制。
现在,你所要做的就是按CTRL + a然后TAB切换到右边的区域,然后按CTRL + a 。
您的文本将写入命令行。 请注意,如果要直接写入文件,还可以检查硬拷贝选项。
如果只是想要复制一点信息,只需用鼠标突出显示,然后将其粘贴到所需的位置即可。
如果你想获得大量的信息,屏幕会话可以被logging到一个文件,然后你可以从文件中复制或清理一下,并使用它的指示做事情
终于今天我用鼠标find了一个解决scheme:
按住Ctrl并用鼠标右键单击 。 复制/粘贴上下文菜单显示。
https://michalzuber.wordpress.com/2015/01/28/gnu-screen-copy-paste-with-mouse/上的一些屏幕;