2014-10-04 17 views
5

Uso oh-my-zsh con Zsh e voglio i binding Vim sulla riga di comando. Nel mio .zshrc, ho le seguenti linee (full .zshrc here):Perché non funziona il binding in modalità vi-cmd "jk" non funziona

# 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 

Ora, ho solo essere in grado di tornare alla modalità di comando premendo 'jk' sulla riga di comando, ma ho vinto lavorare Fuga però funziona.

Dove sto andando male?

risposta

10
export KEYTIMEOUT=1 

è il solito sospetto qui, è 40 (0,4 secondi) per impostazione predefinita. Io uso 10, funziona perfettamente con 'kj' (lo preferisco verso l'interno).

+1

Trovato [qui] (http://superuser.com/questions/351499/how-to-switch-comfort-da-to-vi-command-mode-on-the-zsh-command-line#comment1047582_353127) a sii onesto –

+1

Tu sei l'uomo. –