Zsh
在 ZSH 中設置新的鍵綁定會刪除預設鍵綁定
我在末尾添加了以下程式碼
.zshrc
:export VISUAL=vim autoload edit-command-line; zle -N edit-command-line bindkey -M vicmd v edit-command-line
當我重新啟動 shell 時,它可以正常工作,但所有以前的鍵綁定都停止工作。
例如,我無法搜尋歷史記錄 ( CTRL-R ),也無法在命令行 ( CTRL-A/E ) 中移動。
也許我把這些命令放在了錯誤的地方?
任何幫助,非常感謝!
當您設置
VISUAL
為包含 的字元串vi
時,zsh 使用 Vi鍵映射(vicmd
,viins
, …) 和 Vi 樣式的預設鍵綁定。否則 zsh 使用emacs
帶有 Emacs 樣式預設鍵綁定的鍵映射。如果你想在 shell 中使用 Emacs 風格的命令行編輯,但使用 Vim 作為你最喜歡的編輯器,添加
bindkey -e
到你的.zshrc
.如果你想使用 Vi 風格的命令行編輯,但使用 Emacs 風格的預設綁定,你必須自己定義這些綁定。
^R
在 Emacs 模式下執行history-incremental-search-backward
,在 Vi 模式下沒有綁定。在 Vi 命令模式下搜尋的預設鍵綁定是/
forvi-history-search-backward
和?
forvi-history-search-forward
。要移動到命令行的開頭或結尾,您可以像往常一樣使用0
,^
和。$