ฉันเพิ่งติดตั้ง 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 - หมายเหตุ: โฟลเดอร์นี้อาจแตกต่างจากของคุณขึ้นอยู่กับการติดตั้ง
options
Keys
แท็บBackarrow sends ^H
นี่เป็นสิ่งเดียวที่ทำงานให้ฉันโดยเฉพาะอย่างยิ่งถ้าคุณต้อง SSH ไปยังเซิร์ฟเวอร์ (ไม่ใช่การแก้ไขทั้งหมดจะทำงานได้) ฉันใช้เพื่อเพิ่ม. stty erase ^?
bashrc ของฉัน แต่สิ่งนี้แก้ไขปัญหาได้เพียง 80% เท่านั้น
ไม่เคยประสบปัญหาของคุณ ลองติดตั้ง Terminal Emulator Mintty ( http://code.google.com/p/mintty/ )
มีให้บริการผ่านโปรแกรมติดตั้ง Cygwin สุดยอดเทอร์มินัลสำหรับ cygwin