Vi शेल मोड के लिए कस्टम कुंजी बाइंडिंग, अर्थात, "सेट -ओ vi"?


18

मैंने सिर्फ अजूबों की खोज की set -o vi , और उत्सुक हूं कि क्या इस vi शेल मोड को कस्टमाइज़ करना संभव है, उसी तरह से आप vi या vim को कस्टमाइज़ कर सकते हैं?

उदाहरण के लिए, एक अधिक सुविधाजनक कुंजी या कुंजी कॉम्बो को मैप करने के लिए एक कस्टम कुंजी बाइंडिंग बनाएं esc?

यदि यह वर्तमान में समर्थित नहीं है, तो प्रोग्राम के स्रोत कोड और कुछ अनुकूलन में हार्डकोड को बदलना कितना मुश्किल होगा, या यह एक बुरा विचार होगा?


मुझे यहाँ उत्तर मिला < unix.stackexchange.com/questions/27699/remap-bash-vi-keys >
DinizBr

जवाबों:


17

हां, आप बिलिन के साथ कुंजी मैपिंग (या तो vi- या emacs- जैसे मोड के लिए) बदल सकते हैं bind। यह वास्तव में एक रीडलाइन सुविधा है (इसलिए आप सभी रीडलाइन प्रोग्राम में vi- जैसे बाइंडिंग कर सकते हैं, न कि केवल बैश)।

जिस कुंजी को आप खोज रहे हैं उसे कहा जाता है vi-movement-mode, और \e(बच) के लिए चूक । आप इसके अतिरिक्त इसे बाँध सकते हैं (और यह मूर्खतापूर्ण है) इस तरह से बराबर है। दूसरी पंक्ति से बचने के लिए बंधन से छुटकारा मिलता है:

$ bind "=":vi-movement-mode 
$ bind -r "\e"

चल रहा है bind -p आपको उन सभी कुंजियों को दिखाएगा जिन्हें आप बाँध सकते हैं, और उनकी वर्तमान बाइंडिंग (यदि कोई हो)।

आप bindअपने में कमांड डाल सकते हैं .bashrc, या आप ~/.inputrcइसे उन सभी रीडलाइन प्रोग्रामों पर लागू करने के लिए संपादित कर सकते हैं जिन्हें आप चलाते हैं। रीडलाइन डॉक्स में पूरा विवरण होता है।


1
यह कमाल का है। बहुत बहुत धन्यवाद। मैं यह पता लगाने में सक्षम था कि प्रमुख कॉम्बोस को कैसे बांधें bind "Control-Space":vi-movement-mode- जैसे कि ठीक काम करता है। लेकिन उदाहरण के लिए, मेरे पास एक पंक्ति में दो अक्षर टाइप करने हैं escजैसे कि, यदि आप टाइप jjकरते हैं तो आप सामान्य मोड पर लौट आएंगे। यह तब काम नहीं किया जब मैंने इसे बांधने की कोशिश की, क्या यह काम करने का एक विशेष तरीका है?
योना

@Jonah कि मैं बंद हाथ के बारे में पता नहीं है, लेकिन मैं हाल ही में ReadLine डॉक्स अवलोकन नहीं किया है ...
derobert

@chishaku आपको एक संकेत ( @) पर जोनाह के नाम को उपसर्ग करने की आवश्यकता है , या उसे कोई सूचना नहीं मिलेगी।
derobert

2
@ जोनाह मैंने बस वही करने की कोशिश की। क्या आपको इसका कभी पता चला?
चिशकु

1
unix.stackexchange.com/questions/303282/… किसी कारण के लिए आपको उद्धरण चिह्नों की आवश्यकता हैbind '"jk":vi-movement-mode'
Hielke Walinga
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.