बैश, कैसे विश्व स्तर पर तय करने के लिए ^ एच और ^? बैकस्पेस समस्याएं


12

मैं इस बार-बार की समस्या को ठीक करना चाहूंगा, जहां रिमोट सर्वर पर शेल मेरे टर्मिनल की बैकस्पेस कुंजी है ^?और कभी-कभी यह सोचता है कि यह ^Hगलत है , और जब मैं बैकस्पेस दबाता हूं तो गलत चरित्र उत्पन्न होता है। अगर मैं इसे ^ H या ^ पर सेट करूं तो? साथ stty erase ^Hया stty erase ^?मेरे Bashrc फाइल में, और सर्वर तक पहुँचने के लिए कुछ अन्य टर्मिनल का उपयोग, यह अक्सर गलत समाप्त होता है। stty erase [whatever]जब मैं बैकस्पेस कुंजी गलत होता हूं, तो मैं इसे ठीक करने के लिए मैन्युअल रूप से टाइप करने के लिए अटक जाता हूं।

मैं जो करना चाहता हूं, वह दोनों को ^?और ^Hबैकस्पेस को बांधना है , क्योंकि अगर मैं ऐसा कर सकता हूं, तो मैं इसे केवल अपनी .bashrc फाइलों में जोड़ सकता हूं, और यह निश्चित रूप से इस दुःस्वप्न को समाप्त करेगा। क्या यह संभव है? यदि हां, तो कैसे?

जवाबों:


8

इस पृष्ठ में वे सभी जानकारी हैं जिनकी आपको इस मुद्दे पर कभी भी आवश्यकता होगी; मेरा सुझाव है कि आप इसे पढ़ें। अब, यदि आप उपयोग कर रहे हैं, तो इन पंक्तियों वाली फ़ाइल bashबनाने के लिए पर्याप्त होना चाहिए ~/.inputrc:

"\e[3~": delete-char
# this is actually equivalent to "\C-?": delete-char
# VT
"\e[1~": beginning-of-line
"\e[4~": end-of-line
# kvt
"\e[H":beginning-of-line
"\e[F":end-of-line
# rxvt and konsole (i.e. the KDE-app...)
"\e[7~":beginning-of-line
"\e[8~":end-of-line

एक अतिरिक्त बोनस के रूप में, वे Homeऔर Endसाथ ही काम करेंगे।


2

Http://web.archive.org/web/2012062101035133/http://www.ibb.net/~anne/keyboard/keyboard.html में अधिकांश जानकारी वास्तव में आपकी आवश्यकता है। सूचना में एक सुधार, उनके सुझाव का है (XTerm के लिए):

*VT100.Translations: #override \
          <Key>BackSpace: string(0x7F)\n\
          <Key>Delete:    string("\033[3~")\n\
          <Key>Home:      string("\033[1~")\n\
          <Key>End:       string("\033[4~")
*ttyModes: erase ^? 

हालांकि यह सही चरित्र भेजने के लिए XTerm प्राप्त करेगा, और बैकस्पेस के रूप में बदलने के लिए स्टाइट को बदल देगा ^?, यह अभी भी ^Hकुछ अवसरों के तहत बैकस्पेस के रूप में रिपोर्ट करेगा , विम इंस्टर्ट मोड में यानी बैकस्पेस को तोड़ना (यहां देखें: https://bugs.genta.org) / 154090 ) है। इससे बचने के लिए, VT100.backarrowKey: falseइसके बजाय का उपयोग करें , ताकि:

*VT100.backarrowKey: false
*VT100.Translations: #override \
          <Key>Delete:    string("\033[3~")\n\
          <Key>Home:      string("\033[1~")\n\
          <Key>End:       string("\033[4~")
*ttyModes: erase ^? 

(यह भी देखें [कृपया यहां लिंक डालें])


" आपको टिप्पणी करने के लिए 50 प्रतिष्ठा की आवश्यकता क्यों है" पढ़ें, ताकि आप समझ सकें कि आप टिप्पणी कैसे शुरू कर सकते हैं।
दलाल रस आईटी

मुझे किसी से भी स्पष्टीकरण की आवश्यकता नहीं थी। बल्कि, मैं उपरोक्त उत्तर के लिए स्पष्टीकरण और एक मामूली सुधार प्रदान कर रहा था। लेकिन, अगर यह एक उत्तर में प्रलेखित है, तो यह हो। मैंने इसे पूरा उत्तर बनाते हुए चारों ओर जोड़ा।
अमोसन

इसके अलावा, यह लिंक मेरे उत्तर से गायब है, लेकिन मैं इसे वहां नहीं जोड़ सकता। wiki.archlinux.org/index.php/Xterm#Fix_the_backspace_key
amosonn
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.