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再次向前循環。

相關內容