readline:非增量搜索是否提供了增量搜索所没有的功能?

readline:非增量搜索是否提供了增量搜索所没有的功能?

我在 bash 中经常使用增量搜索(Ctl-r/Ctl-s),并且发现它非常有用。

我注意到 Meta-p (Esc p) 运行非增量搜索,并且考虑到它的增量等效项的存在,我很好奇它的用途是什么。它是否有一些我忽略的技巧?如果您的命令历史绝对庞大,也许速度会更快?

由于它无法为您提供从增量搜索中获得的相同交互式反馈,我想知道您为什么要使用它。

答案1

我认为人们可能更喜欢在 Bash 历史记录中进行非增量搜索,原因与在其他界面中所做的相同;当您确切地知道自己在寻找什么时,看到不相关的匹配项呼啸而过可能会有点分散您的注意力。

还有,效率。现在没有那么多,但在过去,我可以想象进行增量搜索会慢得多。

答案2

我实际上发现了非增量搜索的一个非常好的功能。默认情况下,Readline 绑定:

  • M-nnon-incremental-forward-search-history
  • M-pnon-incremental-reverse-search-history

这些有点糟糕,恕我直言。但阅读线有另一对非增量搜索函数,没有默认绑定:

  • history-search-forward
  • history-search-backward

在历史记录中向前/向后搜索当前行开头和该点之间的字符串。

这些实际上非常有用。我已将它们绑定到M-nM-p,替换默认的非增量函数。

如果我开始输入命令并决定搜索匹配的历史记录条目,我可以点击Escape p(因为我实际上没有元键)。

重复点击可向后循环并Escape n再次向前循环。

相关内容