Bash
如何按原樣執行 ctrl+r 查詢而不是匹配?
有時,當我在 shell 中反向搜尋 cmd 時,我找不到正確的匹配項,只想按原樣執行搜尋查詢。
bash/zsh 和朋友有沒有辦法在不丟棄輸入的情況下執行它?
在 zsh 中,您可以使用變數
LASTSEARCH
和LASTABORTEDSEARCH
. 它們僅在編輯器小元件中可用。編輯器小元件是一種功能,它已被製成編輯器小元件,
zle -N
並通過鍵綁定呼叫。(鍵綁定可以是ESC-x
—:
在 vi 模式下。)例如,以下程式碼綁定
ESC-s
以將目前命令行替換為最後的增量搜尋。如果您ESC-s
在增量搜尋期間按下,則表示搜尋正在進行(中止)。function set-buffer-last-search { LBUFFER=$LASTSEARCH; RBUFFER=; } zle -N set-buffer-last-search bindkey '\es' set-buffer-last-search