मैं टर्मिनल को C- / (यानी कंट्रोल-स्लैश) कैसे भेजूं?


13

मैं एक टर्मिनल में Emacs चलाने की कोशिश कर रहा हूं। मैंने टर्मिनल प्राथमिकताओं में "मेटा के रूप में उपयोग विकल्प" चालू किया है और इसलिए यह लगभग 95% सही काम कर रहा है।

मुख्य अनुक्रम ctrl- / (या Emacs अंकन C- / में) "पूर्ववत" है। यह मुख्य अनुक्रम टर्मिनल को घंटी बजाने का कारण बनता है। मैं यह कैसे तय करुं?


FWIW, यह iTerm2 - iterm2.com में काम करता है - लेकिन मुझे लगता है कि मैं खुद को ^ _ हर जगह उपयोग करने के लिए, और अधिक पोर्टेबल होने के लिए अपने आप को पुनः प्रयास करूंगा।
स्टीवन आर। लूमिस

@ StevenR.Loomis पोर्टेबल? न तो नियंत्रण- / और न ही नियंत्रण-_ Android के तहत काम ...
माइकल

@ मायकिल ने मुझे पोर्टेबल कहा क्योंकि यह ASCII में प्रतिनिधित्व योग्य है (स्वीकृत उत्तर देखें) और इस तरह बिना किसी परेशानी के नेटवर्क कनेक्शन पार कर सकता है। इसके अलावा, यह सबसे भौतिक कीबोर्ड मैंने देखा है पर प्रयोग करने योग्य लगता है। मैंने एंड्रॉइड डिवाइस पर कीबोर्ड की जोड़ी बनाने की कोशिश नहीं की, क्या आप एक नरम या हार्ड कीबोर्ड की बात कर रहे हैं?
स्टीवन आर। लूमिस

@ StevenR.Loomis सॉफ्टवेयर ... नियंत्रण भाग को नजरअंदाज कर दिया जाता है जिसके परिणामस्वरूप स्लैश या अंडरस्कोर डालने का प्रयास किया जाता है।
माइकल

जवाबों:


19

नियंत्रण- मानक नियंत्रण कोड/ के सेट का हिस्सा नहीं है । यह कई टर्मिनल एमुलेशन में कीस्ट्रोके के रूप में सीधे प्रतिनिधित्व योग्य नहीं है। इस तरह के कीस्ट्रोक को केवल कुछ खास प्लेटफॉर्म-विशिष्ट "स्कैन्कोड मोड्स" या "GUI मोड" में ही ठीक से पहचाना जा सकता है (जहां API आपको बताता है कि किस कुंजी और संशोधक का उपयोग किया जा रहा है)। आपका टर्मिनल एम्यूलेटर बीप कर रहा है क्योंकि यह प्रभावी रूप से एक अमान्य कीस्ट्रोक है।

मानक नियंत्रण कोड केवल "नियंत्रण" संस्करणों को कवर करते हैं

  • @ A- Z [\]^_(एएससीआई 0 - 31), और
  • ? (ASCII 127)

अधिकांश टर्मिनल एमुलेटर कार्यक्रमों में अधिकांश अमेरिकी कुंजी लेआउट के साथ चल रहे हैं Shiftजिन्हें आपको "नियंत्रण कोड" में से कुछ को उत्पन्न करने के लिए प्रेस करने की आवश्यकता हो सकती है :

  • C- @ है ControlShift2(चूंकि @है Shift2)
  • C- ^ है ControlShift6(चूंकि ^है Shift6)
  • C-_ है ControlShift-(तब _से Shift-)
  • हालाँकि, सी-? हमेशा नहीं हो सकता ControlShift/(क्योंकि ?है Shift/); सी-? आमतौर पर या तो Backspace(Apple कीबोर्ड पर, अतिरिक्त प्रतीक additional के बिना "डिलीट" लेबल वाली कुंजी) या Delete(Apple कीबोर्ड पर Apple के साथ एक ) द्वारा उत्पन्न होता है ।

Tty- आधारित Emacs में, आप आमतौर पर undoC- / के बजाय C-_ का उपयोग कर सकते हैं ।


1
पूरी तरह से उत्तर के लिए धन्यवाद। मैं यह देखने के लिए विभिन्न टर्मिनल प्रकारों के साथ खेलने की कोशिश करने जा रहा हूं कि क्या मुझे यह काम करने के लिए मिल सकता है।
केविन पीटरसन

1
"विभिन्न टर्मिनल प्रकार"? क्या आप अलग-अलग टर्मिनल एमुलेटर प्रोग्राम से मतलब रखते हैं, या आप $ TERM वैल्यू की बात कर रहे हैं, जो टर्मिनल में टर्मिनल> प्राथमिकता> सेटिंग्स> [प्रोफाइल]> एडवांस> डिक्लेयर टर्मिनल के रूप में सेट है ? (वह सभी वरीयता जो $ TERM का मान निर्धारित करती है। यह टर्मिनल एमुलेशन के संचालन को नहीं बदलती है।) नियंत्रण- / X11 की एक विशेषता है और यह कोको या टर्मिनल द्वारा समर्थित नहीं है।
क्रिस पेज

5

Ctrl- / 0x1f भेजता है जो VT102 के दिनों से Ctrl-_ के बराबर है। कई VT100 एमुलेटर हैं लेकिन वे वास्तव में VT102 एमुलेटर हैं। iTerm2 काम करता है क्योंकि यह इस व्यवहार का अनुसरण कर रहा है।

केवल एमुलेटर जो वीटी 100 विनिर्देश के अनुरूप हैं, वे Ctrl- / भेज नहीं सकते हैं। मेरा मानना ​​है कि टर्मिनल ऐप उनमें से एक है।

नियंत्रण कुंजी दबाए जाने पर VT100 मास्क 7 बिट ASCII के 2 सबसे महत्वपूर्ण बिट्स। / 0x2f है, o 0x6f है। जब 2 बिट नकाबपोश होते हैं तो वे दोनों 0x0f होते हैं। VT100 Ctrl-o भेज सकता है लेकिन Ctrl- / नहीं।


यह स्वीकृत उत्तर होना चाहिए।
ओसोडो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.