这个问题我已经思考了大约十年了,但我从未找到答案。不过,为了具体说明,我将根据我当前的环境来提问。
在 Ubuntu 16.04 上,使用 gnome 终端,有没有办法跳转到您运行的最后一个命令的输出的开头或者包含最后一个命令本身的行? 理想情况下,我希望将此操作分配给一个方便的热键。
明显的用例:任何时候你编译某些东西并得到一个以上的错误屏幕。
这很简单,但我还没有找到办法。一些可悲的替代方案:
- 将输出重定向到文件,然后在编辑器中打开文件。问题:增加了开发人员的时间/开销/烦恼;在文件中打开时可能会丢失 bash 格式,使输出更难阅读;总体而言,与向上滚动相比,通常会节省时间。
- 管道到
less
。问题:与上面相同,而且它似乎没有从输出的顶部开始,或者让我正确滚动。 - 管道到
grep -i error
。问题:可能不会显示错误消息的相关行(需要连续的行),任何 grep 解决方案通常都不强大,并且再次增加了开销。 - 在控制台中向上搜索
username@computername
?问题:不知道在 gnome 终端中是否可以(其他终端可以做到),不够强大(虽然还不错),打字可能比较慢。
这些年来,人们真的一直在向上滚动来查找错误信息吗?我觉得我一定错过了什么。
编辑:迄今为止最好的替代方案:
答案1
答案2
基于 VTE 的终端,例如 GNOME 终端、GNOME 控制台、Xfce4 终端、Terminator、Tilix、Guake 等,自 2024 年 3 月发布 GNOME 46(VTE 0.76)以来都支持此功能。
该热键暂时是硬编码的,即Ctrl+ Shift+Left和Ctrl+ Shift+ Right。
在底层,VTE 使用准标准 OSC 133 shell 集成转义序列来查看提示符的位置,就像其他几个终端已经做的那样。