在 zsh 中使用 vi 模式时,使用 ctrl+箭头(向左或向右)尝试按单词导航(习惯的力量)会导致符号和整个单词被删除。如何配置 vi 模式来防止这种情况?
答案1
我最初只找到了 about bindkey -a
,但它在插入模式下不起作用。我偶然发现zsh 高级绑定文档。
要在插入模式下映射键,必须使用bindkey -M viins
.要在命令模式下映射键,可以使用bindkey -M vicmd
OR bindkey -a
。正如文档所述,后者的可读性不是很好。剩下的就很简单了,Ctrl+左箭头的关键是'^[[1;5D'
,Ctrl+右箭头的关键是'^[[1;5C'
,好的映射分别是emacs-backward-word
和emacs-forward-word
。结果配置是:
# vi mode
bindkey -v
bindkey -M vicmd '^[[1;5C' emacs-forward-word
bindkey -M vicmd '^[[1;5D' emacs-backward-word
bindkey -M viins '^[[1;5C' emacs-forward-word
bindkey -M viins '^[[1;5D' emacs-backward-word