Bash

bash中的非錨定歷史子字元串搜尋

  • July 15, 2019

有兩種現有的方法可以輕鬆獲得這樣的東西:

  • zsh 的歷史子串搜尋外掛
  • bash 的ctrl+r模式

zsh 的問題在於它不在許多系統上。bash 實現的問題在於它需要我先按 ctrl+r。另外,我知道history-search-backwardbash,但它*固定在命令的開頭,*並且沒有那麼強大。

我希望有一種方法可以在 bash 中綁定 up 鍵來實現它:

  • 複製目前鍵入的命令緩衝區
  • 進入ctrl+r模式
  • 在該模式下粘貼目前類型的命令緩衝區

以及隨後按向上鍵

  • 點擊ctrl+r(搜尋下一個上一個)

Bash 4.4 具有history-substring-search-backward執行此操作的可綁定命令。從新聞文件:

2.  New Features in Readline
<...>
b.  There are new bindable commands to search the history for the string of
   characters between the beginning of the line and the point
   (history-substring-search-forward, history-substring-search-backward)

引用自:https://unix.stackexchange.com/questions/379449