Zsh
ZSH:上下鍵的搜尋歷史?
目前,我的 .zshrc 中有以下內容:
bindkey '^[[A' up-line-or-search bindkey '^[[B' down-line-or-search
但是,這似乎僅在出現空格字元之前與我目前輸入的內容相匹配。例如,
sudo ls /
將匹配我的歷史記錄中以 開頭的每一行sudo
,而我希望它只匹配與我的整個輸入匹配的行。(即sudo ls /etc
匹配,但不匹配sudo cat /var/log/messages
)為了獲得所需的行為,我需要改變什麼?
這是我的整個 .zshrc 以防萬一:https ://gist.github.com/919566
zsh 通過使用提供此功能
history-beginning-search-backward history-beginning-search-forward
前任。
bindkey "^[[A" history-beginning-search-backward bindkey "^[[B" history-beginning-search-forward
ctrl
通過+查找確切的密鑰程式碼v``KEY
前任。
ctrl
+v``UP
ctrl
+v``DOWN
ctrl
+v``PageUp
ctrl
+v``PageDown
等。
如果您使用的是 mac,則以下適用於 OSX catalina。
bindkey "\e[5~" history-search-backward bindkey "\e[6~" history-search-forward
這篇2013 年的部落格文章推薦了幾個匹配游標前所有單詞的鍵綁定。
# Cycle through history based on characters already typed on the line autoload -U up-line-or-beginning-search autoload -U down-line-or-beginning-search zle -N up-line-or-beginning-search zle -N down-line-or-beginning-search bindkey "$key[Up]" up-line-or-beginning-search bindkey "$key[Down]" down-line-or-beginning-search
如果你的機器
$key[Up]
上$key[Down]
不能工作,你可以試試$terminfo[kcuu1]
,$terminfo[kcud1]
而不是。