我将 oh-my-zsh 与 Zsh 一起使用,并且希望在命令行上使用 Vim 绑定(bind)。在我的 .zshrc 中,我有以下几行(完整的 .zshrc here ):
# terminal vim
bindkey -v
export KEYTIMEOUT=1
bindkey -M viins 'jk' vi-cmd-mode # @todo - THIS DOES NOT WORK?
bindkey -M viins '^k' kill-line
bindkey '^?' backward-delete-char
bindkey '^h' backward-delete-char
bindkey '^w' backward-kill-word
bindkey '^r' history-incremental-search-backward
# show which vim mode we are in
precmd() {
RPROMPT=""
}
zle-keymap-select() {
RPROMPT=""
[[ $KEYMAP = vicmd ]] && RPROMPT="(COMMAND MODE)"
() { return $__prompt_status }
zle reset-prompt
}
zle-line-init() {
typeset -g __prompt_status="$?"
}
zle -N zle-keymap-select
zle -N zle-line-init
现在,我只是为了能够通过在命令行上按“jk”来切换回命令模式,但它不起作用。不过,Escape 确实有效。
我哪里错了?
最佳答案
export KEYTIMEOUT=1
是这里通常的怀疑对象,默认为 40(0.4 秒)。我使用 10,与“kj”无缝协作(我更喜欢向内)。
关于vim - 为什么我的 'jk' zsh vi-cmd-mode 绑定(bind)不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26196585/