Linux 如何将GNU屏幕复制缓冲区复制到剪贴板?
当使用GNU屏幕时,我们可以使用Linux 如何将GNU屏幕复制缓冲区复制到剪贴板?,linux,terminal,copy-paste,gnu-screen,gnome-terminal,Linux,Terminal,Copy Paste,Gnu Screen,Gnome Terminal,当使用GNU屏幕时,我们可以使用Ctrl+a+[命令使用滚动缓冲区,也称为“复制模式” 在那里,我们可以通过按space选择文本并再次按space将文本复制到复制缓冲区 是否有办法将此文本从屏幕复制缓冲区复制到X剪贴板? 在我的例子中,我将Ubuntu 12.04与gnome和Xorg一起使用。如果您只想复制一点点信息,请用鼠标突出显示它,然后粘贴到您想要的地方 如果您试图获取大量信息,可以将屏幕会话记录到一个文件中,然后您可以从该文件中复制或清理一点,并将其用于操作说明您可以使用CLI剪贴板工
Ctrl+a+[
命令使用滚动缓冲区,也称为“复制模式”
在那里,我们可以通过按space
选择文本并再次按space
将文本复制到复制缓冲区
是否有办法将此文本从屏幕复制缓冲区复制到X剪贴板?
在我的例子中,我将Ubuntu 12.04与gnome和Xorg一起使用。如果您只想复制一点点信息,请用鼠标突出显示它,然后粘贴到您想要的地方
如果您试图获取大量信息,可以将屏幕会话记录到一个文件中,然后您可以从该文件中复制或清理一点,并将其用于操作说明您可以使用CLI剪贴板工具(如或)和
cat
实用程序从STDIN获取内容。在Linux上使用xsel
的步骤如下ows:
cat|xsel-b
xsel
没有报告任何错误,现在将屏幕的复制缓冲区转储到STDIN:Ctrl+a+]
cat
以终止它:Ctrl+d
编辑:与所有X程序一样,
xsel
需要知道如何联系X服务器才能访问剪贴板。您应该适当设置显示
环境变量。此答案适用于OS X
使用将所需文本复制到GNU屏幕粘贴缓冲区后,请执行以下操作:
pbcopy
李>
Ctrl-a]
,除非您更改了转义键)
插入换行符Ctrl-d
使pbcopy
将文本推送到系统剪贴板然后,您可以像往常一样使用
Command-v
或等效的菜单选项将文本粘贴到OSX中的其他位置 今天我终于找到了鼠标的解决方案:
按住Ctrl键,然后用鼠标右键单击。
此时将显示复制/粘贴上下文菜单
在一些屏幕上,有一种更简单、更少人工操作的方法。在screen.rc文件中,添加以下行:
bindkey -m ' ' eval 'stuff \040' 'writebuf' 'exec sh -c "/usr/bin/pbcopy < /tmp/screen-exchange"'
bindkey-m“eval”stuff\040“writebuf”exec sh-c”/usr/bin/pbcopy
如何使用复制功能:
screen-c路径/to/screen/config.rc
bindkey-m“eval”stuff\040“writebuf”exec sh-c“/bin/cat/tmp/screen exchange |/bin/clipit””此答案仅适用于最终目标是立即粘贴复制的缓冲区内容的场景 最简单的方法是将屏幕分为两个区域。您可以通过按CTRL+a来执行此操作,然后|“这不是i”。它是键盘上的管道标志 点击CTRL+a然后点击TAB切换到第二个区域,点击CTRL+a然后点击c在第二个区域创建新会话 如果要从nano复制并粘贴到终端,请在左侧区域的nano中打开文件,按CTRL+a,然后按ESC键,滚动到复制位置的起点并按空格键,滚动到终点并再次按空格键选择文本以标记复制 现在,您只需按CTRL+a然后按TAB切换到右侧的区域,然后按CTRL+a]
您的文本将写入命令行。请注意,如果要直接写入文件,还可以检查硬拷贝选项。如果当前连接到服务器,请退出ssh终端会话 如果您在Mac OS上使用XQuartz,在服务器上使用xsel。您应该通过选择XQuartz应用程序菜单中的首选项来更新XQuartz粘贴板设置 XQuartz设置: ssh连接到远程计算机并尝试运行:
xsel-p因为似乎没有人直接回答这个问题:
将想要的输出复制到缓冲区后,需要
使用新文件打开文本编辑器,即vim somefile.txt
进入编辑模式,即vim中的i
按Ctrl+a
然后按]
,这将把刚才填充的缓冲区内容转储到文本编辑器中
塔达 我想要一种类似于@kungfuspider的编程方法,并调整了他们的解决方案,使之适用于运行在Windows上的Ubuntu WSL
设置:
下载并将win32yank.exe
放在有用的地方(我用ln-s/usr/bin/win32yank
在/usr/bin
中创建了一个指向它的符号链接)
将以下内容放入~/.screenrc
(来自@kungfuspider)。您可能需要修改命令以指向正确的cat
和win32yank
位置
bindkey-m“eval”stuff\040“writebuf”exec sh-c“cat/tmp/screen exchange | win32yank-i--crlf”
重新加载~/.screenrc
而不通过执行CTRL+a
:
源代码~/.screenrc
如何使用:
使用CTRL+a键进入复制模式
通过vim风格的按键移动四处移动