在终端中,是否有任何快捷方式可以跳转到上一个/下一个提示?向上滚动并尝试找到日志的开头会减慢我的工作流程。
我在 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
查看日志文件的内容,则可以使用Space和b键来回滚动(请参阅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 提示符,还有一个选项。