ทำการแมป Ctrl-A ในหน้าจอ GNU


30

ฉันใช้หน้าจอ GNU มาสองสามวันแล้วและCTRL-Aการนำทางเริ่มเสื่อมลง ฉันจะแมปคำสั่งผสมคีย์นี้ใหม่ได้อย่างไรและอะไรคือการแทนที่ทั่วไปสำหรับคีย์เหล่านี้ ตัวอย่างเช่นใน Vim ฉันใช้jjแทน<esc>เพราะมันไม่ต้องการให้ฉันทำลายรูปแบบการพิมพ์ของฉัน

หมายเหตุ: Alex อธิบายวิธีแมปคำสั่งผสมคีย์อย่างไรก็ตามการเพิ่มการรวมเข้ากับ.screenrcไม่ได้ผลสำหรับฉัน ฉันเพิ่มมันลงไปetc\screenrcและมันก็ใช้ได้ .screenrcวิธีดูเหมือนว่าจะทำงานสำหรับคนส่วนใหญ่ผมไม่แน่ใจว่าทำไมไม่ได้อยู่ในระบบของฉัน

คำตอบ:


26

เพื่อให้ใช้ต่อไปนี้ในCTRL+J.screenrc

escape ^Jj

ที่จะพูดmanpage ,

 escape xy

ตั้งค่าอักขระคำสั่งเป็น x และอักขระที่สร้างอักขระคำสั่งตามตัวอักษร (โดยเรียกคำสั่ง "meta") เป็น y (คล้ายกับตัวเลือก -e) แต่ละอาร์กิวเมนต์เป็นอักขระตัวเดียวลำดับสองอักขระของฟอร์ม "^ x" (หมายถึง "Cx"), แบ็กสแลชตามด้วยหมายเลขฐานแปด (ระบุรหัส ASCII ของอักขระ) หรือแบ็กสแลชตามด้วย อักขระตัวที่สองเช่น "\ ^" หรือ "\" ค่าเริ่มต้นคือ "^ Aa"


เมื่อมีการเปลี่ยนแปลงCTRL+JควรจะทำงานตามCTRL+Aที่ถูกต้องหรือไม่
Dru

ฉันมีescape ^Jj^ใน.screenrcไฟล์ไดเรกทอรีรากและไฟล์ไดเรกทอรีหลักของผู้ใช้ ฉันรีบูตหน้าจอและรีสตาร์ทเซสชัน ssh ที่ฉันใช้อยู่สิ่งเหล่านี้ไม่ทำงานฉันคาดว่าCTRL+Jจะทำงานเป็นCTRL+A
Dru

คุณมีเครื่องหมายรูปหมวกพิเศษในตอนท้ายหรือไม่? ควรจะเป็นไม่ได้escape ^Jj escape ^Jj^
Alex Hirzel

1
อาจมีข้อขัดแย้งกับการผูกอื่น ๆ แต่ฉันได้ลองหลายคีย์แล้ว
Dru

5
คุณยังสามารถกด Ctrl + a และพิมพ์ ': escape ^ Jj' (เช่นใน vi) เพื่อเปลี่ยนการทำแผนที่แบบไดนามิก
rags

14

คล้ายกับวิธีการแก้ปัญหาของ @Alex Hirzel แต่ฉันชอบใช้การกดปุ่มลัด Ctrl + ^ (Ctrl + Shift + 6) เนื่องจากไม่เคยใช้ในการกดปุ่ม emacs

เพียงเขียน~/.screenrcดังต่อไปนี้:

escape ^^^
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.