tmux 引脚以避免滚动

tmux pin to avoid scrolling

通常当我 运行 一个写入 stdout 的命令失败时,我必须向上滚动(使用不舒服的键绑定)寻找我按下 Enter 的地方,看看第一个错误是(在数百个其他错误中,跨越许多文本屏幕)。这既烦人又费时。我希望有一个功能可以让我将当前终端固定到我现在所在的位置,然后启动命令,只查看输出的第一行(尽可能多地适合我的光标下方)并让其余的输出被写入但不显示。换句话说,我想要一个功能,允许我自动向上滚动到我发出命令的地方,以查看输出的第一行(通常显示失败的来源)。

我找过,没找到。你知道这样的功能是否存在吗?或者知道如何通过一些技巧或解决方法来实现它?

如果你有一个独特的 shell 提示,你可以绑定一个键来在 shell 提示之间跳转,例如这样的事情会让 C-b S 跳转到上一个 [=27] =] 提示然后 S 后续的:

bind S copy-mode \; send -X search-backward 'nicholas@myhost:'
bind -Tcopy-mode S send -X search-backward 'nicholas@myhost:'

或者类似地,您可以搜索具有可识别前缀的错误字符串。如果你安装了 tmux 3.1 候选发布版,你可以搜索正则表达式。

或者,您可以使用 capture-pane 将整个历史加载到具有您喜欢的键绑定的编辑器中,例如:

$ tmux capturep -S- -E- -p|vim -

或通过管道传输到 grep 或其他任何内容。请注意,您需要使用一个临时文件才能与 emacs 一起使用。

或者尝试养成 tee 将带有大量输出到文件的命令作为开始的习惯。