Zsh
如何在 zsh 的提示符下搜尋已輸入文本的歷史記錄?
在 zsh 中,我知道我可以使用
Ctrl
+搜尋歷史記錄r
。但是,通常我開始直接在提示符下鍵入命令,但隨後意識到我應該搜尋歷史記錄。當我點擊Ctrl
+r
時,它會顯示一個空白的歷史搜尋提示,如下所示:請注意我的提示中有文本,但歷史搜尋提示中沒有。如何使用提示中已有的文本開始歷史搜尋,所以它看起來像這樣:
您可以使用zle 的
history-search
功能:bindkey "^[[A" history-beginning-search-backward bindkey "^[[B" history-beginning-search-forward
Up
這將和(調整您自己的轉義序列)綁定Down
到歷史搜尋,向後和向前,基於已經在提示中輸入的內容。因此,如果您輸入 “vim” 並點擊
Up
,zsh 將僅針對以 “vim” 開頭的那些命令向後遍歷您的歷史記錄。您還可以使用history-search-end
/usr/share/zsh/functions/Zle/
函式-end
(通常位於autoload -U history-search-end zle -N history-beginning-search-backward-end history-search-end zle -N history-beginning-search-forward-end history-search-end bindkey "^[[A" history-beginning-search-backward-end bindkey "^[[B" history-beginning-search-forward-end