ทำไม 'ผูก' และ `อินพุท 'จึงทำงานต่างกัน?


14

~/.inputrcฉันพยายามที่จะทำสิ่งที่ถูกต้องและนำไปผูกที่สำคัญของฉันเป็น

อย่างไรก็ตามปรากฎว่าฉันต้องเปลี่ยน

bind '"\e\C-j":"\e[1~quiet \e[4~\n"'

เข้าไป

"\e\C-j": "\eOHquiet \eOF\n"

ตอนนี้\eOH(nav-block-pos1 ถูกผูกไว้กับbeginning-of-line) และ\eOF(nav-block-end ถูกผูกไว้กับend-of-line) กำลังผูกตัวเองในการกำหนดค่าของฉันซึ่งฉันอาจไม่สามารถพึ่งพาได้เสมอ

ดังนั้นคำถามหลักคือเหตุผลที่ไม่ผูกพันกับ Num-บล็อก pos1 ( \e[1~) และจำนวนบล็อกสิ้น ( \e[4~) ทำงานด้วยbindแต่ไม่ได้อยู่ในของฉัน~/.inputrc?


แก้ไข:

สิ่งทั้งหมดนั้นซับซ้อนมากขึ้นตอนนี้ฉันรู้แล้วว่ามัน\e\C-jใช้ได้กับ Gnome Terminial เท่านั้น (หรืออาจจะเป็น xterm ก็ได้เช่นกันใครจะรู้ ... )

สำหรับ TTY ของฉันมันจะต้องมี

"\e\C-m": "\e[1~_quiet \e[4~\n"

ดังนั้น VT ต่าง ๆ มีการใช้งานที่แตกต่างกันของวิธีตีความคีย์หรืออะไร


เอกสารนี้มีอยู่ในคู่มือผู้ใช้ส่วนติดต่อผู้ใช้ของGNU Readlineส่วน 1.3 keymapตัวเลือกที่จะใช้ในการตั้งค่าสิ่งที่ชนิดของการเป็นตัวแทนที่สำคัญคือคำจำกัดความที่ใช้ในการผูกที่สำคัญ ข้อมูลที่เกี่ยวข้อง: superuser.com/questions/286781/… cnswww.cns.cwru.edu/php/chet/readline/rluserman.html#SEC9 wiki.archlinux.org/index.php/Readline
ЯрославРахматуллин

@ ЯрославРахматуллинสิ่งนี้เกี่ยวข้องกับความแตกต่างของพฤติกรรมระหว่างการใช้bindและการใช้งานinputrcสำหรับการเชื่อมโยงที่แท้จริงอย่างไร พวกเขาไม่ควรใช้การตั้งค่าเดียวกันหรือไม่?

คำตอบ:


2

เทอร์มินัลอีมูเลเตอร์ของคุณสามารถทำงานในหนึ่งในสองโหมด: โหมดแอปพลิเคชันและโหมดเคอร์เซอร์ (ดูhttp://homes.mpimf-heidelberg.mpg.de/%7Erohm/computing/mpimf/notes/terminal.html ) ขึ้นอยู่กับโหมดที่แอปพลิเคชันของคุณใช้ในการกำหนดลำดับการหลบหนีที่คุณต้องส่ง

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