我想在另一个xterm中使用从命令行运行的命令的部分输出,或者作为不同命令的一部分.例如:
> grep error error.log error: can't find file ~//thisfile
我想这样做:
>ls ~//
我知道有两种方法可以做到这一点:
1.~/
用鼠标复制.
2.使用一些组合head
/ tail
/ awk
/ sed
/ perl
/ cut
/等..只提取了我从输出需要,然后使用该内部反引号.
有没有办法在不使用鼠标的情况下复制文本?想到的例子是VIM内部的可视化模式,但我不知道如何在xterm中做到这一点.
您可以使用GNU屏幕的复制和粘贴命令.
快速教程:
打开屏幕:( screen
或screen myprog my args here
)
运行程序,生成要复制的输出
进入复制模式:Control+ a+[
将光标移动到起点
击中 Enter
将光标移动到终点
击中 Enter
粘贴:Control+ a+]
屏幕比这更强大(我使用它来标记几个虚拟终端而不需要特殊的终端模拟器,并且当X崩溃或某事时我也不会丢失我的会话).要退出屏幕,只需结束shell会话,或键入Ctrl+ a,Ctrl+ \.
我发现XSel在类似情况下很有用.它是一个操纵X选择的工具.例如,这会将命令的输出存储到剪贴板:
grep error error.log | xsel -bi
你也可以使用tmux
具有类似的功能来screen
.一旦进入tmux
并且您有要复制的输出,您可以执行以下操作来复制并粘贴它:
进入副本模式Ctrl + B,[
使用箭头键移动光标,然后开始选择 Ctrl + Space
移动光标选择要复制的文本/区域,然后复制Alt + W(这将立即退出复制模式)
您现在可以粘贴(tmux
仅限内)使用Ctrl + B,]
这些指导假设启用了emacs密钥绑定.对于vi绑定,请参阅此比较或按照此分步指南进行操作.