के रूप में इंगो समझाया। बस सोचा कि मैं समाधान पोस्ट करूंगा: https://github.com/Greduan/dotfiles/blob/47f92e4db29d4ead778d877a85082b271de130ed/vim/vimrc.vim#L332-L346
बहुत अच्छी तरह से काम करता है। यह मेरे लिए थोड़ा उलझन में है, इसलिए मैं वास्तव में समझा नहीं सकता, लेकिन कोड स्वयं को बहुत अच्छी तरह से समझाता है।
बिंदु यह काम करता है, यह बस टर्मिनल पर भी <Esc>
तुरंत काम करता है। मेरा मानना है कि यदि आपके पास मैपिंग <Esc>
पर सेट है तो यह आपको उन लोगों को भी करने का समय देगा। हालांकि मुझे यकीन नहीं है।
संपादित
थोड़ा अध्ययन किया और अब मैं यह समझा सकते हैं। असल में, यदि आप एक जीयूआई (जैसे मैकवीम) का उपयोग नहीं कर रहे हैं तो जब आप डालने मोड दर्ज करते हैं तो ttimeoutlen
को 0 पर सेट किया जाएगा। मतलब यह है कि जैसे ही आप <Esc>
पर क्लिक करेंगे, जो काम करेगा। हालांकि एक बार जब आप सामान्य मोड में हों तो यह ttimeoutlen
आपके द्वारा पसंद की गई संख्या पर सेट करेगा, जिससे आप <Esc>
के साथ मैपिंग कर सकते हैं।
सही समाधान मुझे लगता है, क्योंकि यदि आपके पास सम्मिलित मोड में मैपिंग है तो यह नियंत्रण या कुछ ऐसा उपयोग करेगा।
संपादित 2
कोड यह रहा:
set timeout " Do time out on mappings and others
set timeoutlen=2000 " Wait {num} ms before timing out a mapping
" When you’re pressing Escape to leave insert mode in the terminal, it will by
" default take a second or another keystroke to leave insert mode completely
" and update the statusline. This fixes that. I got this from:
" https://powerline.readthedocs.org/en/latest/tipstricks.html#vim
if !has('gui_running')
set ttimeoutlen=10
augroup FastEscape
autocmd!
au InsertEnter * set timeoutlen=0
au InsertLeave * set timeoutlen=1000
augroup END
endif
बार मैं शर्त यह है कि जीयूआई नहीं चल रहा है हटा दिया है और यह अभी भी जहाँ तक मैं बता सकता है काम करता है।
क्या आपके पास ईएससी कुंजी के साथ कोई मैपिंग है? – Kent