如何将文本从程序“屏幕”复制到剪贴板?


13

我想将一些文本从屏幕复制到剪贴板。我知道如何进入屏幕上的复制和粘贴模式,但是我希望该文本进入剪贴板,以便可以将其粘贴到浏览器中。

我该怎么做呢?谢谢!

Answers:


8

在大多数程序中,您将选择文本,然后按Ctrl+ C进行复制。要粘贴文本,请按Ctrl+ V。在终端仿真器程序中,Ctrl+ C具有特殊含义,默认情况下它会中断(停止)程序。

您的终端仿真器程序可能还定义了其他快捷方式。例如,Konsole和Gnome Terminal使用Ctrl+ Shift+ C复制所选文本。或者,选择文本并使用“ 编辑”菜单或上下文菜单中的“ 复制”选项进行复制

如果程序的输出很大,则可能要启用的回滚缓冲区screen。可以通过在~/.screenrc文件中添加以下行来完成:

termcapinfo xterm ti@:te@

2
如果您要从GNU屏幕复制的文本超出了屏幕的实际
面积,

我通常会向后滚动(或在选择时继续滚动)。
Lekensteyn 2011年

您是说在屏幕上处于“复制”模式时?
Marco Ceppi

3
不,当使用鼠标在常规模式下选择文本时。为此,您需要放入termcapinfo xterm ti@:te@〜/ .screenrc文件以允许回滚。如果您没有.screenrc,请从lekensteyn.nl/files/screenrc中
Lekensteyn 2011年

嗯,就是这样,谢谢您的澄清。您可能需要将其添加到答案中。
Marco Ceppi

10

对于原始和肮脏的实现,请安装软件包xsel,该软件包允许命令行与X剪贴板进行交互,然后将这些行放入您的~/.screenrc

bind > eval writebuf "exec sh -c 'xsel -nbi </tmp/screen-exchange'"
bind y eval "exec sh -c 'xsel -bo >/tmp/screen-exchange'"

然后重新启动screen

现在,当您在screen复制/回滚模式下选择某项,并使用C- 将粘贴缓冲区写入文件时a >,您可以像往常一样移动到浏览器并粘贴剪贴板的内容(例如,使用Ctrl- V)。

对于反向,复制的东西在你的浏览器Ctrl- C,然后去screen和读取新的命令剪贴板C- a y,然后阅读屏幕交换文件与粘贴缓冲区C- a <,最后贴上无论你想用C- a ]

为此,DISPLAY必须正确设置变量,并且您必须有权访问X服务器。当您在同一台X服务器上运行的终端上时,这不是问题,但是如果您screen在虚拟终端(例如tty1)上运行,则可能需要先xhost +在X端export DISPLAY=:0或类似的终端上运行,然后再启动screen

如您所见,它并不简单,也不是防弹的,但我希望它能有所帮助。

这个答案的部分灵感来自于同步GNU屏幕的粘贴缓冲区和X选择


xhost +是可怕的建议。它允许在互联网上有人盗用您的X会话,捕捉你的按键,采取截图等,从来没有做到这一点。做正确的事情有正确的方法。只要您位于同一主机上并使用相同的homedir,只需进行设置即可$DISPLAY
R .. GitHub停止帮助ICE

0

只需在终端应用程序中使用复制操作即可。例如,如果您使用的是gnome-terminal,则只需选择test并使用上下文菜单->复制即可。


1
如果终端应用程序没有上下文菜单怎么办?如果没有复制操作怎么办?我没有投票,因为我不认为这值得。
djeikyb 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.