使用Ctrl + R可以搜索以前的命令。如果Ctrl + R再次点击,它将显示较早的先前命令。问题是这种搜索是“单向的”,每次按下 时它总是显示较早的结果Ctrl + R。
现在,如果我点击的Ctrl+R次数太多而错过了我真正想要的结果,我必须停止搜索(Ctrl + G)并从头开始重新开始。
是否有任何命令(Ctrl + something)可以搜索比当前显示的结果“更新”的结果?
答案1
Bash 还具有前向历史搜索,它映射到CtrlS。
通常,此快捷方式将被stop
终端的流控制键绑定所掩盖(使用stty -a
)。这将使你的终端停止输出任何内容——这不是你想要的。
要使前向历史记录搜索正常工作,您有两个选择:
完全禁用流量控制:
stty -ixon
将流控制绑定到其他东西,CtrlX例如
stty stop ^X
答案2
Ctrl + S应“向前”搜索历史记录。或者任何bind -p
告诉您必定要搜索的内容forward-search-history
。