如何将GNU屏幕拷贝缓冲区复制到剪贴板

当使用GNU Screen时,我们可以使用Ctrl+a+[命令来处理也称为“复制模式”的 回滚缓冲区

在那里,我们可以通过按spaceselect文本并再次按space来将文本复制到复制缓冲区

有没有办法将这个文本从屏幕复制缓冲区复制到X剪贴板?

在我的情况下,我使用GNOME和Xorg的Ubuntu 12.04。

您可以使用CLI剪贴板工具(如xselpbpastecat实用程序从STDIN中获取内容。 使用xsel Linux上的步骤如下所示:

  1. 将屏幕会话中的文本复制到GNU屏幕的复制缓冲区中。
  2. 在屏幕中运行此命令: cat | xsel -b cat | xsel -b
  3. 如果xsel没有报告任何错误,现在转储屏幕的复制缓冲区到STDIN: Ctrl+a+]
  4. 发送一个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:

  1. screen -c path/to/screen/config.rc
  2. 按Ctrl + A,然后按Esc进入复印模式。
  3. 向上滚动文本缓冲区,find想要离开开始标记进行复制的点,然后点击空格。
  4. 向下滚动并select您想要复制的文本。 当你完成后,再次点击空间。
  5. 文本现在将在剪贴板中。

这个答案适用于OS X.

使用复制模式将所需文本复制到GNU屏幕粘贴缓冲区后,执行以下操作:

  1. 在任何屏幕窗口中,inputpbcopy <enter>
  2. 然后使用GNU屏幕粘贴命令 ( Ctrl-a ]将您的文本粘贴到terminal中,除非您更改了转义键)。
  3. 如果文本不以换行符结束,请按<enter>键插入一个。
  4. 最后,按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/上的一些屏幕;