我在 bash 中经常使用增量搜索(Ctl-r/Ctl-s),并且发现它非常有用。
我注意到 Meta-p (Esc p) 运行非增量搜索,并且考虑到它的增量等效项的存在,我很好奇它的用途是什么。它是否有一些我忽略的技巧?如果您的命令历史绝对庞大,也许速度会更快?
由于它无法为您提供从增量搜索中获得的相同交互式反馈,我想知道您为什么要使用它。
答案1
我认为人们可能更喜欢在 Bash 历史记录中进行非增量搜索,原因与在其他界面中所做的相同;当您确切地知道自己在寻找什么时,看到不相关的匹配项呼啸而过可能会有点分散您的注意力。
还有,效率。现在没有那么多,但在过去,我可以想象进行增量搜索会慢得多。
答案2
我实际上发现了非增量搜索的一个非常好的功能。默认情况下,Readline 绑定:
M-n
到non-incremental-forward-search-history
M-p
到non-incremental-reverse-search-history
这些有点糟糕,恕我直言。但阅读线还有另一对非增量搜索函数,没有默认绑定:
history-search-forward
history-search-backward
在历史记录中向前/向后搜索当前行开头和该点之间的字符串。
这些实际上非常有用。我已将它们绑定到M-n
和M-p
,替换默认的非增量函数。
如果我开始输入命令并决定搜索匹配的历史记录条目,我可以点击Escape p
(因为我实际上没有元键)。
重复点击可向后循环并Escape n
再次向前循环。