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