在命令行历史记录中向前搜索

在命令行历史记录中向前搜索

使用Ctrl + R可以搜索以前的命令。如果Ctrl + R再次点击,它将显示较早的先前命令。问题是这种搜索是“单向的”,每次按下 时它总是显示较早的结果Ctrl + R

现在,如果我点击的Ctrl+R次数太多而错过了我真正想要的结果,我必须停止搜索(Ctrl + G)并从头开始重新开始。

是否有任何命令(Ctrl + something)可以搜索比当前显示的结果“更新”的结果?

答案1

Bash 还具有前向历史搜索,它映射到CtrlS

通常,此快捷方式将被stop终端的流控制键绑定所掩盖(使用stty -a)。这将使你的终端停止输出任何内容——这不是你想要的。

要使前向历史记录搜索正常工作,您有两个选择:

  1. 完全禁用流量控制:stty -ixon

  2. 将流控制绑定到其他东西,CtrlX例如stty stop ^X

答案2

Ctrl + S应“向前”搜索历史记录。或者任何bind -p告诉您必定要搜索的内容forward-search-history

相关内容