क्या हमारे पास एक कुंजी बाँधने की मेज है जो एक कुंजी प्रेस का जिक्र करने के सभी विभिन्न तरीकों का अनुवाद करती है? मैं उपयोग कर रहा हूं zsh
, लेकिन मैं मानता हूं कि अगर ऐसी कोई तालिका होती तो यह किसी भी खोल के लिए काम करती।
मेरे द्वारा पूछे जाने का कारण यह है कि मैं कुछ कीबाइंडिंग निर्दिष्ट करना चाहूंगा और मेरे पास यह जानने का कोई तरीका नहीं है कि मैं उन्हें कैसे संदर्भित करूं (जब तक कि मैं पहले से परिभाषित एक को चोरी करने वाला नहीं हूं)।
उदाहरण के लिए, 'zbindkey' में हमारे पास इस तरह की चीज़ है:
[[ "$terminfo[kend]" == " O"* ]] && \
bindkey -M emacs "${terminfo[kend]/O/[}" end-of-line
... और मैं अनुमान लगा सकता हूं कि "केंड" का अर्थ है कि यह Endकुंजी को संदर्भित करता है ।
bindkey
इन पंक्तियों को देखने के साथ क्रॉस चेकिंग :
"^E" end-of-line
"^[OF" end-of-line
"^[[F" end-of-line
... तो मुझे विश्वास है कि उन लाइनों में से एक Endकुंजी को संदर्भित करता है । कौनसा?
हमारे पास यह "बाइंडकी" फ़ाइल में भी है:
bindkey "\e[A" history-beginning-search-backward
अब, मुझे पता है कि यह Up Arrowकुंजी है, लेकिन मुझे कैसे पता चलेगा कि मैं नहीं जानता था?
$ bindkey (at CLI)
... हमें एक ही कुंजी के लिए एक अलग भाषा देता है:
"^[[A" history-beginning-search-backward
... लेकिन कम से कम अब मुझे पता है कि ^[[A
बिंडकी-ऑन-सीएलआई में वही बात होती है, जैसे \e[A
बिंडकी-इन-ज़िबिंडकी बोलने में होती है। यह आसान है। डॉस में पुराने दिनों में, Up Arrow था 0;72
- आप हर कानूनी कीस्ट्रोके का स्कैन कोड पा सकते हैं और केवल एक ही भाषा थी।
वहां टेबल है? या कीस्ट्रोकेक लेने में सक्षम होने का कोई और तरीका पता है और इसे कैसे संदर्भित करना है terminfo[]
... "बाइंडकी-इन-ज़िबिंडकी" में ... "बिंडकी-एट-सीएलआई" और / या अन्य भाषाओं में होना है?
फिर, डॉस में scancode
कार्यक्रम था - एक कीस्ट्रोके टाइप करें, और आपको स्कैनकोड मिला। यह पापपूर्ण आसान था।
फिर मैंने जो जवाब दिया उससे लगता है कि सभी संभव बिन्दुओं की तालिका को प्रिंट करने का कोई तरीका नहीं है? वैसे भी 'बिंडकी' लगभग वही करती है जो मैं चाहता हूं:
pts/2 HP-y5-10-Debian1 root /aWorking/Docs $ bindkey -L
bindkey "^@" set-mark-command
bindkey "^A" beginning-of-line
bindkey "^B" backward-char
bindkey "^D" delete-char-or-list
bindkey "^E" end-of-line
...
कम से कम मैं सभी मौजूदा बाइंडिंग देख सकता हूं, भले ही सभी संभव बाइंडिंग न हों। अब, यदि कुंजी ग्लिफ़ का 'नियमित' शब्दों में अनुवाद करने का कोई तरीका था:
bindkey "Home" beginning-of-line
... तो मुझे खुशी होगी।
stty -a
कहताlnext
है) को दबाएं फिर कुंजी।