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


8

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

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


如果您的主机名出现在您的提示符下,则可以反向搜索以这种方式循环……
jasonwryan

管道到less
库萨兰达

Answers:


4

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

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空格字符或在命令输出中很少出现且可以接受在提示符(🍌?)中看到的任何东西。

对于更少的误报,这也可以是几个字符的组合。不过,最好在提示的最后选择一些内容,以便于导航。

信用


1
剪切和粘贴不会使连续字符适合我,但我可以使用Vim使它起作用。在插入模式下,用于CTRL-k <space><space>插入不间断空格。然后,在正常模式下,后置后缀ga命令在光标下打印该字符的ASCII值,该值可用于确认该字符与其他空格不同。
robenkleene

0

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

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

$ ./myprogram | less

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

$ ./myprogram | tee myprogram.out | less

如果F在读取正在写入的文件时按,其less行为将类似于tail -f。要中断此操作,请按Ctrl+ c

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.