zsh (z शेल) numpad / numlock काम नहीं करता है


46

मैं सिर्फ zsh / oh-my-zsh में अपग्रेड हुआ। लगभग तुरंत मैंने अपनी मशीन पर ध्यान दिया कि 10-अंकीय संख्या काम नहीं कर रही है। यह बाश और मछली के खोल में काम कर रहा था।

अजीब तरह से, अगर मैं fn / फ़ंक्शन कुंजी को दबाए रखता हूं तो यह सुन्न और कार्यों की तरह काम करता है, लेकिन यह "लॉक" नहीं करता है और मुझे संख्याओं को टाइप करने के लिए fn को दबाए रखना होगा।

कोई विचार वहाँ?

जवाबों:


89

शीर्ष पंक्ति में 'सामान्य' नंबर कुंजी के रूप में समान कुंजी प्रतीकों को नहीं भेजते हैं। उदाहरण के लिए: numpad-1-key भेजता है KP_1जबकि 1-key बस भेजता है 1

कुछ टर्मिनल स्वचालित रूप से शेल को उसी कोड को भेजने के लिए numpad कुंजी को रीमैप करते हैं। इसके अलावा, कुछ गोले (उदाहरण के लिए bash) केवल मुख्य ब्लॉक में उनके समकक्षों की तरह सुमेरु कुंजी की व्याख्या करते हैं।

zshमैपिंग स्वचालित रूप से नहीं करता है, लेकिन आप bindkeyमैपिंग को अपने आप करने के लिए उपयोग कर सकते हैं । ~/.zshrcकीपैड काम करने के लिए मेरे पास निम्नलिखित हैं :

# Keypad
# 0 . Enter
bindkey -s "^[Op" "0"
bindkey -s "^[Ol" "."
bindkey -s "^[OM" "^M"
# 1 2 3
bindkey -s "^[Oq" "1"
bindkey -s "^[Or" "2"
bindkey -s "^[Os" "3"
# 4 5 6
bindkey -s "^[Ot" "4"
bindkey -s "^[Ou" "5"
bindkey -s "^[Ov" "6"
# 7 8 9
bindkey -s "^[Ow" "7"
bindkey -s "^[Ox" "8"
bindkey -s "^[Oy" "9"
# + -  * /
bindkey -s "^[Ok" "+"
bindkey -s "^[Om" "-"
bindkey -s "^[Oj" "*"
bindkey -s "^[Oo" "/"

bindkey -s in-string out-stringको बांधता in-stringहै out-string। यदि in-stringटाइप किया गया out-stringहै तो वापस धकेल दिया जाता है और इनपुट माना जाता है।

वास्तविक कोड (उदाहरण के लिए ^[Oq) आपके सिस्टम पर भिन्न हो सकते हैं। आप अपने टर्मिनल के लिए कोड प्राप्त करने के लिए प्रश्न में कुंजी के बाद Ctrl+ दबा सकते हैं v


3
आप सर धन्यवाद, यह मेरे लिए पूरी तरह से काम किया है और Ctrl+ vटिप बहुत अच्छा है!
ब्रैडग्रेन

1
धन्यवाद, यह वास्तव में उपयोगी था लेकिन Apple USB कीबोर्ड के लिए कुछ चाबियाँ गायब थीं। यह Apple कीबोर्ड के लिए महत्वपूर्ण बंधन है: # कीपैड # 0। बाइंडकी -s "^ [ओप" "0" बिंडकी -s "^ [ऑन" "दर्ज करें।" bindkeys -s "^ [OM" "^ M" # 1 2 3 bindkey -s "^ [Oq" "1" bindkey -s "^ [या" 2 "bindkey -s" ^ [Os "3" # 4 5 6 बिंडकी -s "^ [ओट" "4" बिंडकी -s "^ [ओयू" "5" बिंडकी -s "^ [ओव" "6" # 7 8 9 बिंदकी -s "^ [ओउ" 7 " "bindkey -s" ^ [ox "" 8 "bindkey -s" ^ [Oy "" 9 "# + - * / / bindkey -s" ^ [Ok "+" bindkey -s "^ [Om" - " bindkey -s "^ [Oj" "*" bindkey -s "^ [Oo" "

इसके लिए मैनुअल: gnu.org/software/screen/manual/html_node/…
krowe

और यह भी अच्छा है: stackoverflow.com/questions/18042685/…
krowe

github.com/krowe/kshrc-k800-keybindings ने इस उत्तर को आधार बनाया।
krowe

16

@Adaephon ने जो उत्तर दिया, उसे पूरा करने के लिए, Apple USB कीबोर्ड (A1243) के लिए सही बाइंडिंग हैं। इनको जोड़ने की जरूरत है ~/.zshrc

# Fix numeric keypad
# 0 . Enter
bindkey -s "^[Op" "0"
bindkey -s "^[On" "."
bindkey -s "^[OM" "^M"
# 1 2 3
bindkey -s "^[Oq" "1"
bindkey -s "^[Or" "2"
bindkey -s "^[Os" "3"
# 4 5 6
bindkey -s "^[Ot" "4"
bindkey -s "^[Ou" "5"
bindkey -s "^[Ov" "6"
# 7 8 9
bindkey -s "^[Ow" "7"
bindkey -s "^[Ox" "8"
bindkey -s "^[Oy" "9"
# + -  * / =
bindkey -s "^[Ol" "+"
bindkey -s "^[Om" "-"
bindkey -s "^[Oj" "*"
bindkey -s "^[Oo" "/"
bindkey -s "^[OX" "="

1
रॉबिन, क्या आप अपने जवाब का विस्तार करने के लिए शामिल कर सकते हैं कि ओपी को अपनी समस्या को ठीक करने के लिए इस जानकारी का इनपुट कहां करना चाहिए?
संगीत 2

2
इसने मेरे लिए काम किया +( सिवाय उपयोग के bindkey -s "^[Ok" "+") और =(लापता bindkey -s "^[OX" "=")
dain

4

@Adaephon से भी पूरक उत्तर। यहाँ मुझे अपने डेल डेस्कटॉप के लिए जो उपयोग करना था, वह मदद का हो सकता है। बस इसे अपने .zshrc फ़ाइल में जोड़ें।

(बीटीडब्ल्यू सभी उत्तरों से बाइंडिंग न जोड़ें, आपको बस प्रति कुंजी एक बाध्यकारी होनी चाहिए)

# Keypad
# 0 . Enter
bindkey -s "^[Op" "0"
bindkey -s "^[On" "."
bindkey -s "^[OM" "^M"
# 1 2 3
bindkey -s "^[Oq" "1"
bindkey -s "^[Or" "2"
bindkey -s "^[Os" "3"
# 4 5 6
bindkey -s "^[Ot" "4"
bindkey -s "^[Ou" "5"
bindkey -s "^[Ov" "6"
# 7 8 9
bindkey -s "^[Ow" "7"
bindkey -s "^[Ox" "8"
bindkey -s "^[Oy" "9"
# + -  * /
bindkey -s "^[OQ" "/"
bindkey -s "^[OR" "*"
bindkey -s "^[OS" "-"
bindkey -s "^[Ol" "+"
#END Keypad

सुपर उपयोगकर्ता में आपका स्वागत है! क्या आप इसका उत्तर संपादित कर सकते हैं कि इसमें क्या है और कैसे / कहाँ उपयोग करना है, के बारे में थोड़ा मार्गदर्शन शामिल है?
Excelll

यह समाधान मेरे लिए zsh के लिए विंडोज़ कीपैड (PUTTY, के साथ Terminal > Keyboard > Initial state of numeric pad > Normal) के लिए काम करता है
इवान कास्टेलानोस

3

मेरे Mac OSX El Capitan पर, अवधि कुंजी ^[0nइसके बजाय है ^[01। इसके अलावा, मेरे पास मैक के लिए एक लॉजिटेक वायरलेस कीबोर्ड है और इस पर एक =सांकेतिक चिन्ह भी है। मेरा अंतिम मानचित्रण नीचे जैसा दिखता है:

# Keypad
# 0 . Enter
bindkey -s "^[Op" "0"
bindkey -s "^[On" "."
bindkey -s "^[OM" "^M"
# 1 2 3
bindkey -s "^[Oq" "1"
bindkey -s "^[Or" "2"
bindkey -s "^[Os" "3"
# 4 5 6
bindkey -s "^[Ot" "4"
bindkey -s "^[Ou" "5"
bindkey -s "^[Ov" "6"
# 7 8 9
bindkey -s "^[Ow" "7"
bindkey -s "^[Ox" "8"
bindkey -s "^[Oy" "9"
# + -  * / =
bindkey -s "^[Ok" "+"
bindkey -s "^[Om" "-"
bindkey -s "^[Oj" "*"
bindkey -s "^[Oo" "/"
bindkey -s "^[OX" "="

हालांकि अन्य लोगों द्वारा प्रस्तावित समाधान सही ढंग से काम करता है।


1

यदि आप SSH पर एक लिनक्स सर्वर तक पहुंचने के लिए किट्टी का उपयोग करते हैं और कि कीपैड बैश के साथ ठीक काम कर रहा है, लेकिन ZSH के साथ नहीं है, तो आप अपनी ~/.zshrcकॉन्फिगर फाइल में निम्नलिखित को जोड़ने का प्रयास कर सकते हैं :

# Keypad
# 0 . Enter
bindkey -s "^[Op" "0"
bindkey -s "^[On" "."
bindkey -s "^[OM" "^M"
# 1 2 3
bindkey -s "^[Oq" "1"
bindkey -s "^[Or" "2"
bindkey -s "^[Os" "3"
# 4 5 6
bindkey -s "^[Ot" "4"
bindkey -s "^[Ou" "5"
bindkey -s "^[Ov" "6"
# 7 8 9
bindkey -s "^[Ow" "7"
bindkey -s "^[Ox" "8"
bindkey -s "^[Oy" "9"
# + -  * /
bindkey -s "^[Ol" "+"
bindkey -s "^[OS" "-"
bindkey -s "^[OR" "*"
bindkey -s "^[OQ" "/"

बचाना। लॉगआउट और ZSH विन्यास पुनः लोड करने के लिए फिर से लॉगिन करें, या वैकल्पिक रूप से आप अपने टर्मिनल में निम्नलिखित टाइप कर सकते हैं:

. ~/.zshrc

कीपैड को अब उम्मीद के मुताबिक काम करना चाहिए!


यह एक और उत्तर को दोहराता है और कोई नई सामग्री नहीं जोड़ता है। कृपया जवाब न दें जब तक कि आपके पास योगदान देने के लिए वास्तव में कुछ नया न हो।
DavidPostill

मुझे असहमत होने दो। केवल इस उत्तर में समान कोड हैं: superuser.com/a/907695/351420 और मैं संदर्भ को समझाता हूं और उन कोड का उपयोग कैसे करता हूं, इस उत्तर से बेहतर है।
गैब्रियल हुतक्लोक्क
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.