Urxvt + zsh के साथ अजीब बैकस्पेस व्यवहार कैसे ठीक करें?


15

मैं zsh के साथ संयोजन में urxvt का उपयोग करता हूं। हालाँकि ubuntu 10.04 की मेरी नई स्थापना के बाद से मुझे निम्नलिखित समस्या है। यदि मैं कर्सर को दाईं ओर टाइप करता हूं (बाईं ओर वर्णों को हटाने के बजाय)।

मान लीजिए कि मैंने n अक्षर टाइप किए हैं तो बैकस्पेस को दबाकर n- बार कर्सर को n- पोज़िशन में बाईं ओर ले जाता है, अगर मैं बैकस्पेस टाइप करता हूं तो एक और, कर्सर और नहीं चलता है।

अगर मैं बाएँ तीर टाइप करें, कुछ भी नहीं है, अगर मैं टाइप दायाँ तीर होता है बाद में एक कुछ चरित्र होता है।

mv .zshrc .zshrc.bak
mv .Xdefaults .Xdefaults.bak

मदद नहीं की।

urxvt + बैश ठीक काम करता है और साथ ही xterm + zsh।

zsh-version: 4.3.11-4ubuntu2.is.3ubuntu1 rxvt-unicode संस्करण: 9.09-3

इसे ठीक करने के लिए कोई भी विचार?

जवाबों:


19

निम्नलिखित को अपने .zshrc में जोड़ने का प्रयास करें:

TERM=xterm

यह मेरे लिए FWIW तय किया।
सेठ जूल

5
TERM=xterm-256color256 रंग का समर्थन करने के लिए बेहतर उपयोग ।
xuhdev

1
क्या आप सिर्फ समस्या से बच रहे हैं, urxvt के बजाय xterm का उपयोग करके?
विलास

1
हां, इसने मेरे लिए भी काम किया। मैं Ubuntu और ZSH के साथ लिनक्स (WSL) के लिए विंडोज सबसिस्टम का उपयोग करता हूं और यह मुझे इतने लंबे समय से परेशान कर रहा है। इसके लिए शुक्रिया।
डेव रीड

7

Zsh में, क्या bindkey | grep deleteकहता है? ये लाइनें हैं जो मुझे मिलती हैं:

"^D" delete-char-or-list
"^H" backward-delete-char
"^[3;5~" delete-char
"^[[3~" delete-char
"^?" backward-delete-char

आपके पास "^" होना चाहिए? जैसा कि बैकस्पेस का प्रतिनिधित्व करता है। यदि नहीं ... आप bindkey "^?" backward-delete-charइसे डालने के लिए zsh प्रॉम्प्ट पर कॉल कर सकते हैं ।

क्या इससे समस्या का समाधान होता है?


1
बाँध | grep delete "^ D" delete-char-or-list "^?" बैकवर्ड-डिलीट-चार
छात्र

1

आप सेटिंग करके समस्या के आसपास भी पहुँच सकते हैं

stty erase '^?'

यहां कुछ टर्मिनल एमुलेटर के विचलन के बारे में कुछ विवरण दिए गए हैं (जो कि कुछ एमुलेटर के कारण यह समस्या क्यों है): लिनक्स बैकस्पेस / मिनी-एचओटीओ हटाएं


1

यह एक पुराना धागा है और शायद कोई भी इसे नहीं देखेगा, लेकिन मेरे लिए यह मुद्दा .Xresourcesफाइल में था । मैंने URxvt*termNameपैरामीटर को गलत तरीके से समझा था जैसा कि urxvtविंडो शीर्षक बन जाएगा । यह वास्तव में है कि $TERMपर्यावरण चर क्या हो जाता है , जब तक कि शेल इसे ओवरराइड नहीं bashकरता ( करता है)।

मेरे समाधान जोड़ने के लिए था URxvt*termName: xterm-256colorकरने के लिए ~/.Xresourcesफ़ाइल। इस फ़ाइल में किसी भी परिवर्तन के साथ, आपको परिवर्तन दिखाने के लिए ( डेमॉन प्रक्रियाओं सहित ) xrdb -merge ~/.Xresourcesपूरी तरह से चलाने और फिर से शुरू करने की आवश्यकता होगी ।urxvturxvtd

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