跳转到终端(或 tmux)中的最后一个提示

跳转到终端(或 tmux)中的最后一个提示

在终端中,是否有任何快捷方式可以跳转到上一个/下一个提示?向上滚动并尝试找到日志的开头会减慢我的工作流程。

我在 OSX 上使用 iTerm,但这应该适用于任何 Unix 终端。 Tmux 中的解决方案也会有所帮助。

答案1

tmux v2.4+ 内部(相关提交),您可以定义一个绑定,以可接受的可靠性跳转到最后一个提示:

bind-key b copy-mode\;\
           send-keys -X start-of-line\;\
           send-keys -X search-backward " "

其中" "是一个不间断空格并进行相应的更改以使 shell 提示符包含它($PS1$PROMPT_COMMAND在 bash 中)。

在 shell 提示符和 tmux 配置中设置它可能需要特别小心,因为它可能在复制粘贴操作期间更改为常规空间(请参阅注释中使用 vim 的方法)。

或者,您可以尝试您最喜欢的替代方案unicode 空格字符或命令输出中很少出现的任何内容,并且您准备好接受在提示中看到的内容(

答案2

如果您用来less查看日志文件的内容,则可以使用Spaceb键来回滚动(请参阅less手册)。您还可以使用/(和?向后搜索)在输出中执行搜索。

要查看 中程序的输出less,只需将输出通过管道传递给它即可:

$ ./myprogram | less

要将输出另外保存在文件中:

$ ./myprogram | tee myprogram.out | less

如果您F在读取正在写入的文件时按 ,less将表现得像tail -f。要中断此操作,请按Ctrl+ c

答案3

对于 tmux v3.4+,现在有一个专门用于此目的的内置命令,适用于支持 OSC 133 的 shell:

tmux bind -T copy-mode n send-keys -X next-prompt
tmux bind -T copy-mode p send-keys -X previous-prompt

-o如果您想跳到命令输出的开头而不是 shell 提示符,还有一个选项。

相关内容