2011-03-15 14 views
8

मुझे आमतौर पर वेब के चारों ओर दिलचस्प zsh कीबाइंडिंग सेटिंग्स (bindkey कमांड के माध्यम से) मिलती है। मेरा सवाल यह है कि मैं कैसे समझ सकता हूं कि इन बच निकले दृश्यों को मैप किया गया है? उदाहरण के लिए, यहाँ oh-my-zsh के key-bindings.zshव्याख्या करें zsh bindkey escaped अनुक्रम

bindkey "^[[H" beginning-of-line 
bindkey "^[[1~" beginning-of-line 
bindkey "^[[F" end-of-line 
bindkey "^[[4~" end-of-line 

से एक टुकड़ा है वहाँ कैसे इन keymaps का प्रतिनिधित्व करते हैं पर एक संदर्भ है? साथ ही, क्या यह ज़ेड-विशिष्ट या मंच विशिष्ट है?

मुझे पता है कि मैं कुछ कुंजी के लिए संबंधित भागने वाले अनुक्रम को खोजने के लिए cat या Ctrl-V का उपयोग कर सकता हूं। यह देखते हुए कि मैं रिवर्स मैच खोजने के लिए मजबूर कर सकता हूं, लेकिन यह उन कुंजी के लिए काम नहीं करेगा जो मेरे कीबोर्ड पर मौजूद नहीं हैं (उदाहरण के लिए मैक लैपटॉप पर होम/एंड)। इस प्रकार, मैं उन तरीकों को पसंद करूंगा जो भौतिक कीबोर्ड की परवाह किए बिना चाबियाँ निर्धारित कर सकें।

उत्तर

4

यदि घटनाओं के एक विशिष्ट यूनिक्स/लिनक्स प्रवाह की बात करते हैं तो तस्वीर लगभग निम्नलिखित है।

टर्मिनल एमुलेटर प्रोग्राम एक्स घटनाओं को प्राप्त करता है जैसे कि बटन दबाया जाता है, दूसरा बटन जारी किया जाता है। उदाहरण के लिए, उन घटनाओं को xev उपयोगिता के साथ ट्रैक किया जा सकता है। टर्मिनल एमुलेटर तब उन घटनाओं का अनुवाद एस्केप अनुक्रम में करता है।

यह अनुवाद पत्थर में सेट नहीं है। इसे कॉन्फ़िगर किया जा सकता है। विभिन्न टर्मिनल अनुकरणक अलग-अलग कॉन्फ़िगर किए जाते हैं।

XTerm*VT100*Translations:#override \ 
Ctrl<Key>Left:   string(0x1B) string(OD) \n\ 
Ctrl<Key>Right:   string(0x1B) string(OC) \n\ 

नोट 0x1B जो ESC है: उदाहरण के टर्म के लिए अनुवाद .Xdefaults ऐसे ही में स्थापित किया जा सकता है। ईएससी को ^[ के रूप में भी मुद्रित किया गया है।

अब, zsh zle का उपयोग करता है (और बैश उसी उद्देश्य के लिए रीडलाइन लाइब्रेरी का उपयोग करता है) जो कुछ अनुक्रमों को इनपुट लाइन के चारों ओर स्थानांतरित करने और संपादन कार्यों को करने के लिए व्याख्या करता है।

निम्नलिखित ग्रंथों को और अतिरिक्त विवरण प्रदान करना चाहिए।

Zsh Line editor description

Wikipedia article on escape sequences

और

Xterm Control Sequences

+0

लेकिन वह अन्य टर्मिनल emulators जो X11 के तहत चल नहीं किया जा सकता शामिल नहीं है। –

+0

दाएं। यह कई स्थितियों में से कई है। कई मंदिर, कई गोले, कई कीबोर्ड ड्राइवर आदि। उनमें से सभी अलग-अलग सेटअप किए जा रहे हैं। उदाहरण के लिए, मुझे कभी भी gnome टर्मिनल में अनुवाद स्थापित करने के लिए नहीं मिल सका। – horsh

+0

स्पष्टीकरण के लिए धन्यवाद। कृपया मेरे अज्ञानी को क्षमा करें हालांकि, मुझे यकीन नहीं है कि यह मेरे प्रश्न का उत्तर देता है या नहीं। मैंने दिए गए संदर्भों को देखा और अभी भी बच निकले अनुक्रमों को संबंधित कुंजी अनुक्रमों में अनुवाद करने का तरीका नहीं मिला (यानी "^ [[एच") – ejel