3

我在 OS X Terminal.app 中使用 zsh 很长一段时间以来,我一直渴望有一种方法可以在终端输出的 prev/next 提示之间来回跳转。

这样做的一个便利是能够在每个命令的输出结束时查看(并跟踪错误);例如。当您使用./configure; make; make install.注意从源代码构建东西时:我显然不是指在命令历史记录中来回跳转,而是指一种查看每个命令输出结尾的方法。

有没有人听说过 *nix(最好是 Mac)世界中的这种功能?它是否需要某种以操作系统为中心的终端插件,还是可以通过可以绑定到键盘快捷键的 shell 脚本以编程方式完成?也许我是唯一一个在想这个的人?:)

编辑:这是一个示例场景:假设我想编译和安装一些程序(使用标准./configure && make && make install程序)并且在 make 命令之后,我遇到了一些错误。现在,按照我的理解(我可能完全错了),导致 make 命令失败的关键错误通常显示在输出的最后一行,不是吗?无论如何,在这一点上,我可能会做一些事情,比如cat INSTALL阅读安装文档以检查是否有我遗漏的东西。现在,如果我想回去查看导致我最初的 make 命令失败的错误是什么,那么我必须再次手动向上滚动到该位置,因为我的cat INSTALL命令在它之后打印了大量文本。

我不知道这种情况是否最能说明问题——但在许多其他情况下,我希望我可以“跳”回之前的提示行并检查之前的命令输出;无论是简单的ls命令、makegit status还是其他任何命令——通过使用提示行作为“书签”位置来交换窗口中的位置对我来说似乎是一个有趣的想法。

4

2 回答 2

0

Emacs 有一个shell-mode在 Emacs 编辑器中运行一个 shell,为导航和使用 shell 命令提供了一个丰富的附加命令环境。这包括用于转到上一个/下一个提示的命令,以及删除命令的输出,以便您可以“清理”并发出另一个命令。

如果您不熟悉 Emacs:要在 Emacs 中启动 shell,emacs请从 shell 运行,然后键入Esc-x(或 Meta-x,如果您在Terminal > Preferences > Settings > [profile]中启用了“Use option as meta key” > 键盘)。这将要求执行命令。输入shell

要查看可在 Shell 模式下使用的命令列表,请输入Control-h m。以下是将光标移动到上一个/下一个提示的方法:

C-c C-n         comint-next-prompt
C-c C-p         comint-previous-prompt

这些命令也很有用:

C-c C-r         comint-show-output
C-c C-o         comint-delete-output
于 2011-09-01T02:45:50.703 回答
0

command + left 或 right 在 iterm 的选项卡之间移动。这就是你要问的吗?

于 2010-10-30T22:56:17.260 回答