Zsh कमांड लाइन पर vi कमांड मोड में आराम से कैसे स्विच करें?


22

Vi में, मैंने कष्टप्रद एस्केप कुंजी का उपयोग किए बिना कमांड मोड में स्विच करने में सक्षम होने के लिए 'jj' मैप किया है। अब मैं कमांड लाइन संपादन के लिए वही होना चाहता हूं जिसके लिए मैं vi- मोड का उपयोग करता हूं। मैं पहले से ही निम्नलिखित समाधान पाया है:

bindkey '^j' vi-cmd-mode

आपको कंट्रोल-जे के साथ कमांड मोड में बदलने की सुविधा देता है। फिर भी संशोधक-कुंजियों के बिना 'जे जे' या कुछ इसी तरह के समाधान के लिए खोज।


4
क्यों न केवल कैप्स लॉक टू रिमैपिंग का सहारा लिया जाए?
क्रिया

जवाबों:


30

नोट: आपको man zshzleकस्टमाइज़ करने bindkeyऔर अनुकरण करने के बारे में बहुत सारे उपहारों को देखना चाहिए GNU readline

यह है कि मैं कैसे मैप किया jjगया Esc:

bindkey -M viins 'jj' vi-cmd-mode

यदि आप इंसर्ट-मोड और नॉर्मल-मोड के बीच अंतर करने में रुचि रखते हैं, तो आप सुझाव का उल्लेख कर सकते हैं


हाँ! अच्छी तरह से काम। बहुत बहुत धन्यवाद!
एमन रेसु

क्या कोई पूर्वापेक्षाएँ हैं जिन्हें zsh में इस कार्य से पहले पूरा करने की आवश्यकता है? या कुंजी बाइंडिंग डिबग करने के तरीके? इस कमांड को डालने के बाद, कुछ भी नहीं होता है। jj अभी भी काम नहीं करता है।
अल्ट्रामास्टर

5
मेरे पास KEYTIMEOUT सेट बहुत कम था, यही कारण था।
अल्ट्रामास्टर

@Ultramaster एक शानदार बिंदु बनाता है। यदि आप पहले से ही स्पीड के लिए KEYTIMEOUT सेट कर रहे हैं, तो मैं सुझाऊंगा = = 20 मिलीसेकंड। जैसेexport KEYTIMEOUT=20
शिल्प
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.