ฉันเพิ่งติดตั้ง Cygwin และฟังก์ชั่น BACKSPACE ไม่อยู่ที่นั่นเช่นเมื่อฉันกดปุ่ม Backspace ฉันจะได้รับพื้นที่
ฉันพยายามค้นคว้าปัญหานี้บน Google แล้ว แต่ไม่พบข้อสรุปใด ๆ
sttyคำสั่งคืออะไร?
ฉันเพิ่งติดตั้ง Cygwin และฟังก์ชั่น BACKSPACE ไม่อยู่ที่นั่นเช่นเมื่อฉันกดปุ่ม Backspace ฉันจะได้รับพื้นที่
ฉันพยายามค้นคว้าปัญหานี้บน Google แล้ว แต่ไม่พบข้อสรุปใด ๆ
sttyคำสั่งคืออะไร?
คำตอบ:
ในกรณีของฉัน backspace ไม่ทำงานเลยหลังจากสร้าง blank ~ / .vimrc การเปลี่ยนแปลงต่อไปนี้ทำให้มันทำงาน
ใส่:
set bs = 2
ใน. vimrc
พบสิ่งนี้ได้ที่ http://linux-journal.blogspot.com/2005/04/fix-vim-backspace-doesnt-work.html
ใช้งานได้สำหรับฉัน: ในพรอมต์คำสั่ง Windows ให้พิมพ์
echo export TERM=cygwin >> C:/cygwin/home/YourUser/.bashrc
สิ่งนี้จะเพิ่มไป.bashrcและทุกอย่างอาจทำงานได้ดี!
TERMตั้งค่าตัวแปรสภาพแวดล้อมเป็นmsysผ่านการตั้งค่าตัวแปรสภาพแวดล้อม Windows ตามที่แนะนำใน StackOverflowเพื่อช่วยgitแก้ไขปัญหาใน Windows เพียงแค่รีเซ็ตมันcygwinใน.bashrcไม่ได้ช่วย แต่เอาTERMเข้ามาจากการตั้งค่า Windows ไม่ ขอบคุณที่ชี้นำฉันไปในทิศทางที่ถูกต้อง!
ฉันพบวิธีแก้ไขปัญหาที่นำเสนอเช่นเดียวกับด้านบน
เพียงแค่เรียกใช้การตั้งค่า Cygwin อีกครั้งและติดตั้งและtermcap terminfoหากคุณใช้ช่องค้นหาคุณสามารถค้นหาได้อย่างรวดเร็ว แทนที่จะพูดว่า "Keep" สำหรับแต่ละรายการให้คลิกเพื่อให้พูดว่า "ติดตั้งใหม่" คุณอาจต้องเลือกช่องทำเครื่องหมาย "ซ่อนล้าสมัย" เพื่อtermให้ปรากฏในการค้นหา
โฟลเดอร์ terminfo ของฉันหายไปทั้งหมด ไม่รู้ว่าทำไม หวังว่านี่จะช่วยใครซักคน
แก้ไข c: \ cygwin \ cygwin.bat ของคุณ
วางสิ่งนี้: SET TERM=cygwin
ก่อน: bash --login -i
เมื่อคุณตั้งค่าชนิดของ TERM คุณกำลังบอกโฮสต์ว่า TERMCAP ใช้เพื่อวาดภายในหน้าต่างเทอร์มินัล โฮสต์ * NIX ส่วนใหญ่ไม่รู้ว่า termtype 'cygwin' คืออะไรดังนั้นพวกเขาจึงไม่รู้วิธีจัดการกับอักขระบนหน้าจอเช่นส่วนแทรกการลบการเลื่อนการเปลี่ยนแบบอักษรและอื่น ๆ
หากคุณเปลี่ยนตัวแปร TERM ใน CYGWIN ก่อน telnet หรือ SSH เป็นโฮสต์คุณจะได้ผลลัพธ์ที่ดีกว่ามาก:
ใน 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
$_
ตอนนี้โฮสต์รู้ว่าคุณมีประเภทเทอร์มินัล ANSI และสามารถใช้เป็นไฟล์ ANSI TERMCAP เพื่อบอกวิธีการสื่อสาร
หากคุณไม่สามารถใช้งานได้และทุกอย่างทำงานได้อย่างถูกต้องยกเว้น Backspace คุณสามารถสร้างโปรแกรม "getty" บนโฮสต์ที่คุณเชื่อมต่อเพื่อรับรู้สิ่งที่คุณต้องการและนี่คือวิธี (นี่คือเก่าที่สุดที่พบมากที่สุด วิธีแก้ปัญหา backspace / ลบ):
คุณ ssh หรือ telnet ไปยังโฮสต์ของคุณและในโฮสต์คุณเรียกใช้คำสั่ง stty หากคุณกดปุ่ม "BACKSPACE" และไม่ย้อนกลับมันเป็นเพราะเทอร์มินัลอาจมองหาตัวละครที่แตกต่างกันตามประเภทของ TERM แทนที่จะขุดผ่านทั้งหมดที่คุณสามารถตั้งค่า backspace ด้วยตนเองที่ CLI หรือในไฟล์. profile, .bashrc หรือ. bash-profile ในไดเรกทอรี $ HOME ตามที่คุณต้องการหรือตามรสนิยมของ * NIX คุณ การใช้
ดังนั้นหากคุณกด ^ H (นั่นคือตัวควบคุม -H) และคีย์ของคุณสำรอง แต่คุณกดปุ่ม BACKSPACE และไม่ลองใช้ stty ดังนี้:
stty erase \*<HIT YOUR BACKSPACE KEY HERE>*[ENTER]
เวลาส่วนใหญ่จะมีลักษณะเช่นนี้:
stty erase \^?[ENTER]
เครื่องหมาย '\' บอกว่าตัวละครตัวต่อไปจะเป็นตัวควบคุมที่ไม่สามารถพิมพ์ได้และจะยอมรับมันไม่ใช่ "ตีความ"
เมื่อคุณกด [ENTER] คุณควรจะสามารถกดปุ่ม [BACKSPACE] ของคุณและให้มันถอยหลัง / ลบสิ่งที่คุณพิมพ์
คุณสามารถตั้งค่านี้ในเปลือกของคุณ
ตอนนี้ถ้าคุณยังคงใช้ VI บางครั้งการแปลไม่ทำงานและคุณต้องพิมพ์ ^ H ใน vi แต่ก็ไม่เป็นไร
คุณอาจพูดว่า:
ลบ stty k [ENTER]
และแท้จริงแล้วมันจะแปล 'k' ไปเป็นอักขระลบ / ลบ
-D
ตกลงฉันมีปัญหานี้ด้วยการอัปเดตการติดตั้ง Cygwin ด้วยตนเอง อย่างไรก็ตามฉันพบโพสต์นี้ซึ่งนำฉันไปสู่โซลูชันสำหรับการติดตั้งของฉัน
Cygwin เก่ามีไฟล์/etc/terminfo/c/cygwinแต่ในรุ่นใหม่ Cygwin /etc/terminfo/63/cygwinคาดว่าไฟล์ที่จะ
เมื่อฉันคัดลอกไฟล์ "cygwin" ไปยังตำแหน่งนี้คีย์ bash shell backspace ทำงานได้ดีเช่นเดียวกับแท็บและอื่น ๆ
การเปลี่ยนTERMตัวแปรcygwinและการเพิ่มSET TERM=cygwinไปยัง.batไฟล์ที่ไม่ได้ทำงานให้ฉัน แต่ฉันคงมัน ที่นี่สิ่งที่ฉันทำ: ในการติดตั้งแพคเกจผู้จัดการเนื่องจากฉันเลือกที่จะติดตั้งxterm: X11 terminal emulatorหลังจากการติดตั้งผมเพิ่มSET TERM=xtermไปยัง.batไฟล์ (เช่นที่เสนอข้างต้น) เปิดตัวสถานีและในตัวเลือก -> เทอร์มิเมนูที่เลือกType=xtermแล้วเริ่มต้นใหม่ขั้ว Backspace เริ่มทำงานอย่างถูกต้อง!
หมายเหตุ: หากคุณติดตั้ง cygwin แล้ว - เพียงแค่เรียกใช้โปรแกรมติดตั้งอีกครั้งและเพิ่มแพ็คเกจ xterm
ฉันกำลังวิ่ง:
ฉันเห็นด้วยกับคำตอบทั้งหมดที่นี่ แต่มีวิธีที่ง่ายกว่ามากที่นี่: http://lifepluslinux.blogspot.in/2014/08/backspace-doesnt-work-in-vim-on-cygwin.html http://lifepluslinux.blogspot.in/2014/08
ใช้งานได้สำหรับฉัน: ในพรอมต์คำสั่ง Windows ให้พิมพ์
(echo; echo "export TERM=cygwin") >> ~/.bash_profile
สิ่งนี้จะเพิ่มลงใน. bash_profile (ไม่ใช่. bashrc ซึ่งไม่ได้ผลสำหรับฉันและมีการขึ้นบรรทัดใหม่)
หลังจากใช้เวลา 2 วันในการอ่านเนื้อหาออนไลน์ ฉันเจออันนี้ที่เหมาะกับฉัน ฉันไม่ทราบว่ากรณีนี้ตรงกับทุกคน แต่มันก็ใช้งานได้อย่างมีเสน่ห์สำหรับฉันขอบคุณ Yuksel
ปัญหาเกิดจากไฟล์ 'termInfo' ขั้นตอนที่เขาแนะนำ
ยืนยันว่าปัญหาเกี่ยวกับเครื่องเทอร์มินัลโดยการพิมพ์ใน CygWin Terminal ควรให้ (ละเว้นคำเตือน)
less my_session.log
คำเตือน: เทอร์มินัลไม่ทำงานอย่างสมบูรณ์
รับข้อมูลของ 'TermCap' พา ธ หรือไดเรกทอรีที่เกี่ยวข้องโดยพิมพ์รหัสด้านล่างใน CygWin Terminal
infocmp -C
คุณควรจะได้รับ
infocmp: ไม่สามารถเปิดไฟล์ terminfo / usr / share / terminfo / 63 / cygwin
หรือคุณอาจเริ่มสิ่งที่มีข้อความเช่น 'สร้างใหม่ผ่านทาง infocmp ... '
เรียกใช้รหัสด้านล่างใน CygWin Terminal เพื่อเรียกใช้การวิเคราะห์เพื่อรับรายละเอียดเพิ่มเติมเกี่ยวกับเส้นทางที่บันทึกไฟล์
cygcheck -s
ที่ควรตอบสนองคุณคล้ายกับข้อความด้านล่าง
การวินิจฉัยการกำหนดค่า Cygwin
...
C: / cygwin / ระบบไบนารี noacl
C: / cygwin / bin / usr / bin ระบบไบนารี, noacl
C: / cygwin / lib / usr / lib ระบบไบนารี, noacl
C: \ cygwin \ etc \ terminfo / usr / share / terminfo ระบบเลขฐานสอง, noacl
คำนำหน้า cygdrive / ผู้ใช้ไบนารี cygdrive, noacl, posix = 0, อัตโนมัติ
...
C: \ cygwin \ etc \ terminfo / usr / share / terminfo ระบบเลขฐานสอง, noacl
จากผลลัพธ์คุณได้จากขั้นตอนที่ 3 ตอนนี้คัดลอกไฟล์และโฟลเดอร์ทั้งหมดที่มีอยู่ภายใน/ usr / share / terminfoไปยังโฟลเดอร์C: \ cygwin \ etc \ terminfo - หมายเหตุ: โฟลเดอร์นี้อาจแตกต่างจากของคุณขึ้นอยู่กับการติดตั้ง
optionsKeysแท็บBackarrow sends ^Hนี่เป็นสิ่งเดียวที่ทำงานให้ฉันโดยเฉพาะอย่างยิ่งถ้าคุณต้อง SSH ไปยังเซิร์ฟเวอร์ (ไม่ใช่การแก้ไขทั้งหมดจะทำงานได้) ฉันใช้เพื่อเพิ่ม. stty erase ^?bashrc ของฉัน แต่สิ่งนี้แก้ไขปัญหาได้เพียง 80% เท่านั้น
ไม่เคยประสบปัญหาของคุณ ลองติดตั้ง Terminal Emulator Mintty ( http://code.google.com/p/mintty/ )
มีให้บริการผ่านโปรแกรมติดตั้ง Cygwin สุดยอดเทอร์มินัลสำหรับ cygwin