2014-10-04 4 views
5

मैं ओश-माय-जेएसएच का उपयोग ज़श के साथ करता हूं और मैं कमांड लाइन पर विम बाइंडिंग चाहता हूं। मेरी .zshrc में, मैं निम्नलिखित लाइनों (पूर्ण .zshrc here) है:मेरा 'जेके' zsh vi-cmd-mode बाध्यकारी क्यों काम नहीं करता

# 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 
अब

, मैं सिर्फ कमांड लाइन पर 'जे' का उपयोग करके आदेश मोड पर वापस स्विच करने में सक्षम हो, लेकिन यह जीता काम नहीं करता बचाना हालांकि काम करता है।

मैं गलत कहां जा रहा हूं?

उत्तर

10
export KEYTIMEOUT=1 

सामान्य संदिग्ध है, यह डिफ़ॉल्ट रूप से 40 (0.4 सेकंड) है। मैं 10 का उपयोग करता हूं, 'केजे' के साथ निर्बाध रूप से काम करता है (मैं इसे अंदर पसंद करता हूं)।

+1

इसे मिला [यहां] (http://superuser.com/questions/351499/how-to-switch-comfortably-to-vi-command-mode-on-the-zsh-command-line#comment1047582_353127) न्यायी बनो। –

+1

आप आदमी हैं। –

संबंधित मुद्दे