ลำดับการหลีกหนี gnome-terminal ANSI สำหรับ“ CTRL + arrow / s” คืออะไร?


10

ฉันพยายามที่จะกำหนดค่าทุบตีฉัน~/.inputrcจะตั้งค่าเหล่านี้
(หมายเหตุ: , หมายถึงซ้ายและขวาปุ่มลูกศร)

  • Ctrl+ - ควรกระโดดกลับคำ
  • Ctrl+ - ควรกระโดดไปข้างหน้าคำ

ขณะนี้ฉันมีสิ่งนี้ในของฉัน~/.inputrcและมันใช้งานไม่ได้ Ctrl + arrowผลิตอะไร

"\eC-5C":forward-word
"\eC-5D":backward-word

ฉันแน่ใจว่าลำดับการหลบหนีของฉันผิด
ลำดับการหลีกเลี่ยงที่ถูกต้องสำหรับCtrl + arrowชุดค่าผสมคืออะไร?

  • terminal: tmux ภายใน gnome-terminal

คำตอบ:


14

Gnome-terminal ( VTE ที่เหมาะสมยิ่งขึ้น) เลียนแบบบางรุ่นของ xterm escape sequences มันทำอย่างนี้ได้อย่างไรขึ้นอยู่กับรุ่นของ VTE

เอกสารที่เกี่ยวข้อง xterm อยู่ในเครื่องคอมพิวเตอร์สไตล์ฟังก์ชั่นคีย์ส่วนXTerm ลำดับการควบคุม

สิ่งที่คุณกำลังมองหาคือสตริงเช่น\e[1;5D(สำหรับลูกศรซ้ายควบคุม) ซึ่ง5หมายถึงการcontrolปรับเปลี่ยน

ใน ncurses คุณสามารถดูสตริงเหล่านี้โดยใช้infocmp -xเป็นค่าสำหรับkUP5, kDN5, และkLFT5 kRIT5ตัวอย่างเช่น:

    kDN5=\E[1;5B,
    kLFT5=\E[1;5D,
    kRIT5=\E[1;5C,        
    kUP5=\E[1;5A,

ขอบคุณสำหรับการตอบสนองและเชื่อมโยงไปยังแหล่งข้อมูล วิธีนี้แก้ไขปัญหาให้ฉันได้!
the_velour_fog

16

วิธีที่ง่ายที่สุดที่จะหาสิ่งที่เป็นรหัสของลำดับที่สำคัญคือการใช้งาน-ctrlv

ดังนั้นคุณพิมพ์ctrl Vและctrl รับ:

^[[1;5C

ซึ่งเป็นวิธีที่จะเขียนหรือESC[1;5C\e[1;5C


ว้าวเจ๋งมาก คุณรู้หรือไม่ว่าคุณลักษณะที่ตั้งใจของ gnome-terminal หรือเป็นสิ่งที่ค้นพบโดยบังเอิญ?
the_velour_fog

ทั้งสอง zsh ( bindkey|grep 'quoted-insert') และทุบตี ( bind -p|grep 'quoted-insert') <c-v>มีคีย์ผูกพันกับการส่งออกที่สำคัญรหัสที่กำหนดให้
kba ย่อมาจาก Monica

1
สำหรับสิ่งที่คุ้มค่า Ctrl-V ทำหน้าที่เหมือนกันในโหมดแทรกและคำสั่งของ Vim
joeytwiddle

4
@the_velour_fog Ctrl + V ความหมาย“ แทรกอักขระตัวถัดไปแทนที่จะตีความมันเป็นคำสั่งเทอร์มินัล” ย้อนกลับไปตั้งแต่วันแรก ๆ ของ Unix มันเป็นคุณสมบัติของการประมวลผลบรรทัดคำสั่งของเคอร์เนลที่ถูกเลียนแบบโดยระบบอินพุตที่ซับซ้อนมากขึ้นเช่น bash, zsh, vi, ...
Gilles 'ดังนั้น - หยุดความชั่วร้าย'

1
@kba สำหรับบันทึกพวกเขาไม่ใช่คนเดียว จริง ๆ แล้ว Bash's นั้นขึ้นอยู่กับไลบรารี GNU Readline ซึ่งขึ้นอยู่กับว่ามันผูกกับมันเพื่อ<c-q>ให้ตรงกับปุ่มลัดของ Emacs หรือไม่ Zsh ผูกมันไว้กับทั้งคู่<c-v>และ<c-q>เฉพาะในกรณีที่คุณเปิดใช้งานโหมด Vim นั่นก็คือแดกดันนั่นเอง Readline ยังถูกใช้โดยสิ่งอื่น ๆ เช่นimport rlcompleterการปรับปรุงPython (แหล่งข้อมูล: tiswww.case.edu/php/chet/readline/readline.html#SEC9และman zshzle)
ssokolow
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.