我想将一些文本从屏幕复制到剪贴板。我知道如何在屏幕中进入复制和粘贴模式,但我希望该文本进入我的剪贴板,以便我可以将其粘贴到浏览器上,例如。
我该怎么做呢?谢谢!
enz*_*tib 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'"
Run Code Online (Sandbox Code Playgroud)
然后重新启动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 选择
在大多数程序中,您会选择文本并按Ctrl+C进行复制。粘贴文本将通过按Ctrl+来完成V。在终端模拟器程序中,Ctrl+C有特殊的含义,它默认中断(停止)程序。
您的终端模拟器程序可能定义了其他快捷方式。例如,Konsole的和Gnome终端使用Ctrl+ Shift+C用于复制选定的文本。或者,选择文本并使用“编辑”菜单或上下文菜单中的“复制”选项进行复制。
如果您的程序输出很大,您可能需要启用screen. 这可以通过将以下行添加到~/.screenrc文件中来完成:
termcapinfo xterm ti@:te@
Run Code Online (Sandbox Code Playgroud)