เมื่อฉันใช้ emacs ภายใต้หน้าจอ GNU ถ้าฉันเรียกหน้าจอ Cx Cs ค้างและไม่ตอบสนองต่อการป้อนข้อมูลของแป้นพิมพ์
ฉันไม่สามารถทำซ้ำได้ แต่อย่างน้อยหนึ่งครั้งต่อวันฉันต้องฆ่าเซสชันของหน้าจอและเริ่มต้นใหม่
ฉันจะแก้ปัญหานี้ได้อย่างไร
ขอบคุณ
เมื่อฉันใช้ emacs ภายใต้หน้าจอ GNU ถ้าฉันเรียกหน้าจอ Cx Cs ค้างและไม่ตอบสนองต่อการป้อนข้อมูลของแป้นพิมพ์
ฉันไม่สามารถทำซ้ำได้ แต่อย่างน้อยหนึ่งครั้งต่อวันฉันต้องฆ่าเซสชันของหน้าจอและเริ่มต้นใหม่
ฉันจะแก้ปัญหานี้ได้อย่างไร
ขอบคุณ
คำตอบ:
CtrlSคืออักขระควบคุมการไหล "หยุดชั่วคราว" (XOFF) โดยปกติจะจัดการโดยไดรเวอร์ tty หรือในหน้าจอกรณีนี้ ตรงข้ามของมันคือ XON CtrlQหรือ
เมื่อคุณเปิดใช้งาน Emacs โดยปกติแล้วจะใช้เวลามากกว่าตัวละครพิเศษส่วนใหญ่ (ไม่ใช่แค่การควบคุมการไหล แต่ยังเป็นCtrlC"Interrupt" ตามปกติด้วย)
ใช้C-a :flow off
เพื่อปิดการใช้งานโฟลว์คอนโทรลสำหรับหน้าต่างหน้าจอนี้
ยืนยันด้วยC-a :info
(มองหา-flow
ในป๊อปอัป)
ถ้ามันไม่ได้ช่วยให้ลองหรือstty -ixon
stty stop undef
(คุณสามารถทำได้จากหน้าต่างแยกโดยใช้stty -f /dev/tty1
หรือstty </dev/tty1
.)
บนระบบของฉัน (Linux) หน้าจอจะสังเกตเห็นเมื่อปิดการควบคุมการไหลสำหรับ tty แม้ว่าระบบปฏิบัติการของคุณอาจมีข้อ จำกัด บางประการ
:flow off
ทำงาน ขอบคุณ! มีวิธีใดที่ฉันจะทำให้เป็นถาวร
defflow
screen
defflow off
ลงใน~/.screenrc
ไฟล์ของคุณหรือสร้างหนึ่งในโฮมไดเรกทอรีของคุณ นี่ก็เพียงพอแล้วที่จะอนุญาตให้ emac ของฉันทำงานได้อย่างถูกต้องภายในscreen
หน้าต่าง ควรพิจารณาวิธีการนี้ก่อนที่จะผูกกุญแจซ้ำ
ฉันมีปัญหาเดียวกันกับหน้าจอล็อคและอีกมากมายเมื่อใช้ emacs ภายใต้หน้าจอ ตัวอย่างเช่น Ca in emacs ที่นำคุณไปสู่จุดเริ่มต้นของบรรทัดถูกดักหน้าจอและมันไม่ทำงาน
วิธีการแก้:
สร้างไฟล์. screenrc ในโฮมไดเร็กตอรี่ของคุณด้วย:
#Change escape character to C-u
escape "^uu"
#unbind ctrl+s from xoff in order to be able to search in emacs
bind s
bind ^S
#unbind ctrl+x from lockscreen in order to be able to save in emacs
bind x
bind ^X
จากนั้นทุกครั้งที่คุณเปิดหน้าจอใหม่แทนที่จะใช้ Ca คุณจะต้องใช้ Cu เพื่อป้อนคำสั่งหน้าจอใหม่ การเปลี่ยนแปลงอีกสองรายการจะดูแลสิ่งต่าง ๆ อีกสองอย่างที่ฉันต้องเปลี่ยนเพื่อให้สามารถใช้ emacs ใต้จอได้โดยไม่มีปัญหา
C-u
เป็นกุญแจสำคัญสำหรับ emacs ฉันไม่คิดว่ามันเป็นความคิดที่ดี แต่ความคิดในการเปลี่ยน. screenrc เป็นทางเลือกที่ดีกว่า