बैकस्पेस साइगविन में काम नहीं करता है


29

मैंने अभी Cygwin स्थापित किया है और BACKSPACE की कार्यक्षमता नहीं है, यानी जब मैंने बैकस्पेस कुंजी को मारा, तो मुझे एक स्थान मिला।

मैं इस मुद्दे पर Google पर शोध करने का प्रयास कर रहा हूं, लेकिन मुझे कुछ भी निर्णायक नहीं मिला।


क्या आप इस बात का अधिक विवरण दे सकते हैं कि आपने साइग्विन को कैसे स्थापित किया था और किस तरह से स्थापित किया था, और जहां वास्तव में बैकस्पेस कुंजी काम नहीं करती है?
ak2

1
मैं अनुमान लगा रहा हूं कि यह शेल में हो रहा है। जब आप नियंत्रण-वी टाइप करते हैं तो बैकस्पेस क्या होता है? और sttyकमांड का आउटपुट क्या है ?
कीथ थॉम्पसन

आपके पास किस प्रकार का कीबोर्ड है? यूएस, यूके आदि
pjc50

क्या आपने कभी इसका समाधान किया? मैं इसे अब अपने नए Cygwin इंस्टाल पर देख रहा हूँ, हालाँकि यह पहले काम कर चुका है। यह ध्यान देने योग्य है कि आपको "स्थान नहीं" मिल रहा है: चरित्र को मिटाने के लिए कर्सर को वापस ले जाना विफल है। आपके द्वारा देखा जा रहा स्थान वह स्थान है जिसे पिछले वर्ण पर स्टंप करना चाहिए था। यदि आप ^ L हिट करते हैं, तो आप देख सकते हैं कि बैकस्पेस IS काम कर रहा है। यही कारण है कि स्टाइट चीजों को ठीक नहीं कर रहा है। यह लगभग सीएमडी शेल की तरह है जिसे साइगविन बाध्य करता है जो कर्सर आंदोलन की व्याख्या करने में विफल है।
SomeCallMeTim

जवाबों:


33

मेरे मामले में रिक्त स्थान ~ / .vimrc बनाने के बाद काम नहीं कर रहा था। बदलाव के बाद इसने काम किया

रखना:

सेट बी एस = २

.vimrc में

यह http://linux-journal.blogspot.com/2005/04/fix-vim-backspace-doesnt-work.html पर मिला


धन्यवाद, इसने मेरे लिए काम किया - पहले, विम में, मेरी बैकस्पेस कुंजी लाइन के साथ वापस आ रही थी, लेकिन जब तक मैंने टाइप करना शुरू नहीं किया तब तक पत्र को साफ़ नहीं कर रहा था। अब यह 'सामान्य' बैकस्पेस करता है।
रॉबर्ट

4
यह बहुत अच्छा है कि इस उत्तर ने कुछ अन्य उपयोगकर्ताओं की मदद की, लेकिन इस मामले में यह सवाल का हल नहीं है क्योंकि मूल प्रश्न विम के बारे में नहीं पूछ रहा है।
क्लेसिन

इसने एक समान मुद्दे को भी हल किया जो मैं कर्सर कुंजी के साथ कर रहा था
स्टीव पॉल

12

मेरे लिए काम किया: विंडोज कमांड प्रॉम्प्ट में, टाइप करें

echo export TERM=cygwin >> C:/cygwin/home/YourUser/.bashrc

यह इसे जोड़ देगा .bashrcऔर सब कुछ अच्छी तरह से काम कर सकता है!


1
मैं था TERMकरने के लिए वातावरण चर सेट msysके रूप में सुझाव विंडोज वातावरण चर सेटिंग के माध्यम से StackOverflow पर के साथ मदद करने के लिए gitविंडोज पर समस्याओं। बस मदद cygwinमें इसे रीसेट .bashrcनहीं कर रहा था, लेकिन TERMविंडोज सेटिंग्स से प्रविष्टि को हटा दिया। मुझे सही दिशा में इशारा करने के लिए धन्यवाद!
फ्लोरियन ब्रूकर

इसने इस तथ्य को हल कर दिया कि cygwin64 लाइन ब्रेक वाले कमांड में बैकस्पेस को अनदेखा कर रहा था। धन्यवाद।
suanik

11

मुझे एक समस्या का हल मिला जो ऊपर की तरह प्रस्तुत किया गया था।

बस फिर से Cygwin सेटअप चलाएं और पुनर्स्थापित करें termcapऔर terminfo। यदि आप खोज बॉक्स का उपयोग करते हैं तो आप उन्हें जल्दी से पा सकते हैं। प्रत्येक के लिए "कीप" कहने के बजाय, इसे "रीइंस्टॉल" कहने के लिए क्लिक करें। termखोज में प्रकट होने के लिए आपको "अप्रत्यक्ष छिपाएँ" चेकबॉक्स की जाँच करनी पड़ सकती है ।

मेरा टर्मफ़ोल्डर फ़ोल्डर पूरी तरह से गायब था। पता नहीं क्यों। आशा है कि यह किसी की मदद करता है।


1
मेरे पास एक कस्टम स्थापित ncurses था, जिसे मैंने हटा दिया। Cygwin setup.exe के माध्यम से हटाने और पुनः इंस्टॉल करने के बाद मुझे यह समस्या हुई। मैं अपनी दुर्व्यवहार से पहले जो काम कर रहा था, उसके अलावा कुछ और चीजों के लिए टेरियर चर सेट करके एक बैंडेड लागू नहीं करना चाहता। शब्दाडंबर को पुनः स्थापित करना (मैं समाप्त नहीं कर पाया) मेरे लिए काम किया। धन्यवाद!
क्लेसीन

शांत, काम करता है, लेकिन क्यों?!
यॉर्डन जॉरिएव

5

अपना c: \ cygwin \ cygwin.bat संपादित करें

इसे रखें: SET TERM=cygwin

पहले: bash --login -i


1
अब तक का सबसे सरल फिक्स। आशा है कि इसके कोई दुष्परिणाम नहीं हैं।
रोमनस्ट्रीम

1

जब आप TERM टाइप करते हैं, तो आप होस्ट को बता रहे हैं कि TERMCAP का उपयोग टर्मिनल विंडो के भीतर करने के लिए कौन सा है। अधिकांश * NIX होस्ट्स को यह नहीं पता होता है कि एक 'cygwin' शब्द क्या है, इसलिए वे यह नहीं जानते कि ऑनस्क्रीन चरित्र हेरफेर कैसे करें जैसे कि आवेषण, डिलीट, स्क्रॉल, फ़ॉन्ट परिवर्तन आदि।

यदि आप टेलनेट या SSH से पहले CYGWIN में TERM वेरिएबल को होस्ट में बदलते हैं तो आपको बेहतर परिणाम मिलेंगे:

CYGWIN में:

d@test01 ~
$ TERM=ansi;export TERM
$ ssh suntest1

d@suntest1's password:
Sun Microsystems Inc.  SunOS 5.8     Generic patch    October 2001

d   pts/1         test01    Fri   Oct 12  00:15   still logged in
$ echo $TERM
ansi
$_

मेजबान अब जानता है कि आपके पास एक एएनएसआई टर्मिनल प्रकार है और यह एएनएसआई टीआरएमसीएपी फाइल का उपयोग कर सकता है कि इसे कैसे बताएं।

यदि आपको वह काम करने के लिए नहीं मिल सकता है और सबसे अधिक सब कुछ ठीक से काम करता है सिवाय बैकस्पेस के, तो आप होस्ट पर "गेट्टी" को रिप्रोग्राम कर सकते हैं जिसे आप जो चाहते हैं उसे पहचानने के लिए कनेक्ट करते हैं, और यहां बताया गया है कि (यह सबसे पुराना, सबसे आम और सबसे सार्वभौमिक है) बैकस्पेस / मुद्दों को हल करने का तरीका):

आप अपने होस्ट को ssh या टेलनेट देते हैं और होस्ट में आप स्टेंट कमांड चलाते हैं। यदि आप "BACKSPACE" कुंजी को हिट करते हैं और यह पीछे नहीं जाता है, क्योंकि टर्मिनल संभवतः TERM प्रकार के आधार पर एक अलग वर्ण की तलाश में है। उन सभी के माध्यम से खोदने के बजाय, आप मैन्युअल रूप से CLI पर या अपने .profile, .bashrc, या .bash-profile फ़ाइल को अपनी $ HOME निर्देशिका में अपनी इच्छानुसार या आप के NIX के स्वाद के आधार पर मैन्युअल रूप से सेट कर सकते हैं। का उपयोग करते हुए।

इसलिए यदि आप ^ H (वह नियंत्रण-एच) दबाते हैं और आपकी कुंजी वापस आ जाती है, लेकिन आप BACKSPACE कुंजी दबाते हैं और यह इस प्रकार स्टटी का उपयोग करने का प्रयास नहीं करता है:

stty erase \*<HIT YOUR BACKSPACE KEY HERE>*[ENTER]

अधिकांश समय ऐसा लगेगा:

stty erase \^?[ENTER]

'\' यह बताता है कि अगला चरित्र एक गैर-मुद्रण योग्य नियंत्रण-वर्ण होने वाला है और इसे स्वीकार करने के लिए है, न कि "व्याख्या" करने के लिए।

एक बार जब आप [ENTER] दबाते हैं, तो आपको अपनी [BACKSPACE] कुंजी को दबाने में सक्षम होना चाहिए और जो भी आपने टाइप किया है उसे बैकस्पेस / डिलीट करें।

आप इसे अपने शेल में सेट कर सकते हैं।

अब, यदि आप अभी भी VI का उपयोग करते हैं, तो कभी-कभी अनुवाद काम नहीं करता है और आपको वास्तव में ^ H in vi टाइप करना होता है, लेकिन यह ठीक है।

आप कह सकते हैं:

stty erase k [ENTER]

और इसका शाब्दिक अर्थ होता है 'k' को erase / delete character में ।।

डी


0

ठीक है, मैं मैन्युअल रूप से एक Cygwin स्थापित अद्यतन के साथ इस मुद्दे था। वैसे भी मुझे यह पोस्ट मिला , जो मुझे मेरे इंस्टॉल के समाधान की ओर ले गया।

पुराने cygwin के पास एक फ़ाइल थी /etc/terminfo/c/cygwin, लेकिन नए cygwin में यह उम्मीद की गई थी कि फ़ाइल होगी /etc/terminfo/63/cygwin

एक बार जब मैंने "cygwin" फ़ाइल को इस स्थान पर कॉपी किया, तो bash शेल बैकस्पेस कुंजी ने ठीक काम किया, जैसा कि टैब और अन्य ने किया था।


0

बदलने TERMके लिए चर cygwinऔर जोड़ने SET TERM=cygwinके लिए .batफ़ाइल मेरे लिए काम नहीं किया, लेकिन मैं इसे तय की। यहाँ मैंने क्या किया: पैकेज मैनेजर नियत इंस्टालेशन में xterm: X11 terminal emulator, SET TERM=xtermजिसे मैंने इंस्टाल करने के लिए चुना था , इंस्टॉलेशन के बाद मैंने .batफाइल में जोड़ा (जैसे कि ऊपर प्रस्तावित), टर्मिनल लॉन्च किया और ऑप्शंस में -> टर्मिनल मेन्यू सेलेक्ट किया Type=xterm, फिर टर्मिनल को फिर से शुरू किया। बैकस्पेस ने सही तरीके से काम करना शुरू कर दिया!

नोट: यदि आपने पहले से ही साइबरविन स्थापित किया है - बस फिर से इंस्टॉलर चलाएं और xterm पैकेज जोड़ें।

मैं चल रहा हुँ:

  • OS = विंडोज 8 (x64)
  • Cygwin setup.exe संस्करण = 2.850 (x64)
  • मजाकिया संस्करण = 1.2-बीटा 1 (x86_64-pc-cygwin)


0

मेरे लिए काम किया: विंडोज कमांड प्रॉम्प्ट में, टाइप करें

(echo; echo "export TERM=cygwin") >> ~/.bash_profile

यह इसे .bash_profile (नहीं .bashrc, जो मेरे लिए काम नहीं करता था, और एक अग्रणी लाइन ब्रेक के साथ जोड़ देगा)


0

2 दिन का समय ऑनलाइन सामान पढ़ने के बाद। मुझे यह वही मिला जिसने मेरे लिए काम किया। मुझे नहीं पता कि यह मामला हर एक से मेल खाता है या नहीं। लेकिन यह मेरे लिए युक्सेल की बदौलत आकर्षण की तरह काम करता था

समस्या 'टर्मइन्फो' फाइलों के साथ थी, जो उसने सुझाए थे

  1. पुष्टि करें कि क्या समस्या CygWin टर्मिनल में टाइप करने से संबंधित है, यह देना चाहिए (चेतावनी को अनदेखा करें)

    less my_session.log

चेतावनी: टर्मिनल पूरी तरह कार्यात्मक नहीं है

  1. 'टर्मकैप' की जानकारी प्राप्त करें कि यह साइगविन टर्मिनल में नीचे दिए गए कोड को टाइप करके किस पथ या निर्देशिका से संबंधित है

    infocmp -C

आपको या तो मिलना चाहिए

infocmp: termfo file / usr / share / termfo / 63 / cygwin नहीं खोल सका

या आपको पाठ से शुरू होने वाला कुछ भी मिल सकता है जैसे 'infocmp के माध्यम से पुनर्निर्माण ...'

  1. डायग्नोस्टिक्स चलाने के लिए साइगविन टर्मिनल में नीचे दिए गए कोड को उस रास्ते के बारे में अतिरिक्त जानकारी प्राप्त करने के लिए चलाएं जहां फाइलें सहेजी जाती हैं

    cygcheck -s

आपको नीचे दिए गए पाठ के समान जवाब देना चाहिए

सिगविन कॉन्फ़िगरेशन डायग्नोस्टिक्स

...

सी: / साइबरविन / सिस्टम बाइनरी, नॉक्ल

सी: / साइबरविन / बिन / यूएसआर / बिन सिस्टम बाइनरी, नॉक्ल

C: / cygwin / lib / usr / lib सिस्टम बाइनरी, नॉक्ल

C: \ cygwin \ etc \ termfo / usr / share / termfo सिस्टम बाइनरी, नॉक्ल

cygdrive उपसर्ग / cygdrive उपयोगकर्ता बाइनरी, नॉक्ल, पॉज़िक्स = 0, ऑटो

...

  1. के समान लाइन के लिए बाहर की जाँच करें

C: \ cygwin \ etc \ termfo / usr / share / termfo सिस्टम बाइनरी, नॉक्ल

आउटपुट से, आपको 3 स्टेप से मिला है। अब सभी फ़ाइलों और फ़ोल्डरों कि अंदर मौजूद कॉपी / usr / share / terminfo करने के लिए फ़ोल्डर C: \ cygwin \ आदि \ terminfo - नोट: इस फ़ोल्डर स्थापना पर निर्भर करता है तुम्हारा से अलग हो सकता


0

कृपया नीचे दी गई छवि का पालन करें यहाँ छवि विवरण दर्ज करें

  1. Cygwin विंडो में कहीं भी राइट-क्लिक करें
  2. क्लिक करें options
  3. Keysटैब पर क्लिक करें
  4. टिकटिक Backarrow sends ^H
  5. प्रेस लागू करें।

यह केवल एक चीज है जो मेरे लिए काम करती है, खासकर जब से आपको एसएसएच को एक सर्वर पर रखना है (सभी फ़िक्सेस काम नहीं करेंगे) मैं stty erase ^?अपने .bashrc में जोड़ता था लेकिन यह केवल 80% समय तय करता था।


-1

कभी अपनी समस्या का अनुभव नहीं किया। टर्मिनल एमुलेटर मिंट्टी ( http://code.google.com/p/mintty/ ) स्थापित करने का प्रयास करें ।

यह Cygwin इंस्टॉलर के माध्यम से उपलब्ध है। साइबरविन के लिए सर्वश्रेष्ठ टर्मिनल।


इससे कोई फायदा नहीं हुआ।
14:

यहां तक ​​कि एक ही मुद्दे पर अटका हुआ है और मिन्टी से भी बैकस्पेस कार्यक्षमता काम नहीं कर रही है। मुझे जगह मिलती है जब मैं दोनों मिन्टी टर्मिनल के साथ-साथ साइबर टर्मिनल पर बैकस्पेस मारता हूं
राहेल

@ राचेल क्या आपने कभी इसका समाधान किया? मैं एक ही मुद्दे को नए सिरेग्विन इंस्टॉल के साथ देख रहा हूं। :(
SomeCallMeTim

@SomeCallMeTim: मैं मिन्टी का उपयोग करके इस मुद्दे को ठीक करने में सक्षम था, साइबरविन कई बार बहुत ही अजीब तरीके से व्यवहार करता है।
राहेल

@ राचेल धन्यवाद, हालांकि मुझे पता चला कि मेरी समस्या यह थी कि साइगविन ने कुछ महत्वपूर्ण फाइलों (जैसे / usr / lib / termfo) को याद किया। मुझे नहीं पता कि वे क्यों गायब थे; उस मुद्दे के साथ किसी और को पाया, सेटअप में गया और टर्मऑफ़ को बताया और पुनः इंस्टॉल करने के लिए कहा, और सब कुछ काम किया।
SomeCallMeTim
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.