टर्मिनल इनपुट सही तरीके से या बिल्कुल भी नहीं लिपटता है


15

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

Ctrl-A को लाइन की शुरुआत में वापस दबाने के बजाय मुझे मेरी पहली इनपुट लाइन से पहले लाइन में कहीं ऊपर लौटना होगा, जहाँ से किसी भी इनपुट को बस बहुत अजीब लगता है।

क्योंकि यह एक बहुत बुरा स्पष्टीकरण है और कल्पना करना कठिन है, यहां बताया गया है कि यह कैसा दिखता है:

स्क्रेन्कैप: लाइन रैपिंग टेस्ट

क्या किसी को पता है कि यह क्या है? यह केवल कुछ विशेष परिस्थितियों में ही नहीं होता है, यह एक स्थायी चीज है जो हमेशा हर टर्मिनल एमुलेटर में हर सत्र के अंत से शुरू होती है।

का आउटपुट printf "%s\n" "$PS1" "$COLUMNS":

leod:~$ printf "%s\n" "$PS1" "$COLUMNS"
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ 
80

का आउटपुट stty -a:

leod:~$ stty -a
speed 38400 baud; rows 11; columns 140; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z;
rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc

3
printf "%s\n" "$PS1" "$COLUMNS"कृपया का आउटपुट जोड़ें ।
मुरु

यह हो सकता है कि आपका कार्यक्रम testटर्मिनल को अस्थिर अवस्था में छोड़ दे। यदि यह एक स्क्रिप्ट है तो क्या आप इसे अपने प्रश्न में शामिल कर सकते हैं? क्या होता है यदि आप testपहले चलने के बिना टाइप करना शुरू करते हैं , तो क्या टेक्स्ट सामान्य रूप से लपेटता है?
WinEunuuchs2Unix

1
हम के stty -aरूप में अच्छी तरह से उत्पादन कृपया देख सकते हैं ?
स्टीलड्राइवर

1
@ WinEunuuchs2Unix गलत परीक्षण (इच्छित उद्देश्य)। type -a testइसके बजाय कोशिश करें ।
मुरु

1
का आउटपुट क्या है printf "%q\n" "$PS1"? PS1 के अंदर कच्चे बच क्रम हो सकते हैं, और %sउन्हें बरकरार छोड़ सकते हैं (जो उदाहरण के लिए रंग को आगे और पीछे बदल सकता है जो आउटपुट में किसी का ध्यान नहीं रहता है)। %qहर गैर-चरित्र को पठनीय तरीके से उद्धृत करता है।
इग्मोंट

जवाबों:


7

यह संभव है कि आपका टर्मिनल खिड़की के आकार को सही ढंग से पहचान नहीं रहा है। मुझे U & L Stackexchange में एक संबंधित प्रश्न मिला , और किसी ने यह जाँचने का तरीका सुझाया कि क्या चल रहा है:

प्रकार

shopt | grep checkwinsize

यदि आउटपुट नहीं है:

checkwinsize    on

आप उपयोग कर सकते हैं

shopt -s checkwinsize

सक्रिय के लिए। निष्क्रिय करने के लिए:shopt -u checkwinsize


1
शायद मैंने पर्याप्त परीक्षण नहीं किया था लेकिन मेरा checkwinsizeपहले से ही था on। मैं shopt -u checkwinsizeइसे बंद कर देता था और मेरा टर्मिनल अभी भी पाठ को सही ढंग से लपेटता था। मुझे यकीन नहीं है अगर यह जवाब सही मायने में ओपी समस्या हल करता है।
विनयुनुच्स

प्रतिभाशाली। यह वह फिक्स है जो मुझे चाहिए था। कमांड लाइन रैप 80 से अधिक वर्णों पर पूरी तरह से काम करता है।
रैंडी

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