Zsh
zsh 類似 tcsh 的歷史導航
在
tcsh
中,\eP
and\eN
命令考慮了目前行的空格規範化前綴,而不僅僅是第一個單詞。例如,如果我的歷史包含
git pull upstream feature-dancing-pigs git clone
我輸入
% git pull
然後打
\eP
進去tcsh
,我得到% git pull upstream feature-dancing-pigs
如果我點擊
\eP
,zsh
我會得到一個與命令匹配的歷史項目% git clone
我想配置
zsh
以模擬tcsh
行為。是否可以?我已經嘗試
zsh
使用預設的 emacs 密鑰配置並使用顯式bindkey "\eP" history-search-backward
事實證明
bindkey "\eP" history-beginning-search-backward
確實有我
^[
最初用來代替\e
.
zshcontrib
在called中有記錄的函式up-line-or-beginning-search
,你可以通過執行查看。man zshcontrib | less '+/^\s*up-line-or-beginning-search'
這些小元件類似於內置函式 up-line-or-search 和 down-line-or-search:如果在多行緩衝區中,它們在緩衝區內向上或向下移動,否則它們搜尋與開頭匹配的歷史行目前行。然而,在這種情況下,它們會搜尋匹配目前行直到目前游標位置的行,以歷史開始-搜尋-向後和-向前的方式,而不是該行的第一個單詞。
ZLE FUNCTIONS
如果您查看在本節頂部給出的說明man zshcontrib
ZLE 函式
小元件
這些函式都實現了使用者定義的 ZLE 小元件(請參閱 zshzle(1)),這些小元件可以綁定到互動式 shell 中的擊鍵。要使用它們,您的 .zshrc 應包含以下形式的行
autoload function
zle -N function
我個人已按照上述說明進行操作,但我懷疑現在您可能不需要…
~/.zshrc
# register the function with the autoloader autoload -U up-line-or-beginning-search # define new zle widget zle -N up-line-or-beginning-search # bind UP key [[ -n "${key[Up]}" ]] && bindkey "${key[Up]}" up-line-or-beginning-search