คีย์เมตาของ Bash เดิมถูกกำหนดเช่นนี้ ( lib/readline/ChangeLog
):
Mon Jul 13 11:34:07 1992 Brian Fox (bfox@cubit)
* readline.c: (rl_variable_bind) New variable "meta-flag" if "on"
means force the use of the 8th bit as Meta bit. Internal variable
is called meta_flag.
ที่เกิดขึ้นจะเป็นวิธีที่จะตีความด้วยncursesและxterm ไม่กี่ขั้วที่จัดไว้ให้สำหรับการทำอุปกรณ์เสริมคุณลักษณะนี้ (ด้านที่ไม่ได้เป็นที่แพร่หลายมากที่สุดของอาคารที่คุณจะพบการใช้พฤติกรรม hardcoded (และไม่น่าสนใจมาก) เดอะ.. terminfoเอกสารหน้าคู่มือเหล่านี้ความสามารถในสถานี:
has_meta_key km km Has a meta key
(i.e., sets 8th-bit)
meta_off rmm mo turn off meta mode
meta_on smm mm turn on meta mode
(8th-bit on)
และอธิบายคุณสมบัติ:
หากเทอร์มินัลมี "เมตาคีย์" ซึ่งทำหน้าที่เป็นปุ่ม Shift ให้ตั้งค่าบิตที่ 8 ของอักขระใด ๆ ที่ส่งผ่านความจริงข้อนี้สามารถระบุkm
ได้ มิฉะนั้นซอฟต์แวร์จะถือว่าบิตที่ 8 เป็นพาริตี้และโดยปกติจะถูกล้าง ถ้าสตริงที่มีอยู่เพื่อเปิดการทำงานนี้โหมด "เมตา" และปิดที่พวกเขาจะได้รับเป็นและsmm
rmm
คุณลักษณะที่แตกต่างกันซึ่งนำหน้าอักขระเลี่ยงเพื่อตอบสนองต่อAlt
คีย์นั้นรวมอยู่ในโปรแกรมจำลองเทอร์มินัล Bash (จริง ๆ แล้วreadline
ไลบรารี) เอกสารที่ใช้ในการเปลี่ยนแปลงจาก 2004:
lib/readline/callback.c
- use _rl_dispatch_callback and a chain of _rl_keyseq_contexts to
simulate the recursion used to decode multicharacter key sequences
(even things like ESC- as meta-prefix
Meta เป็นกรณีพิเศษของคีย์ตัวปรับแต่ง ชอบcontrolและshiftคุณกดมันในเวลาเดียวกันเป็นกุญแจสำคัญอีกครั้งและคาดว่าจะเห็นบางสิ่งบางอย่างที่แตกต่างจากการกดปุ่มด้วยตัวเอง X จัดเตรียมสำหรับคีย์ตัวดัดแปลงโดยการกำหนดบิตในค่าตัวแก้ไขที่ส่งผ่านไปในเหตุการณ์ X สำหรับคีย์ การกดปุ่มสามารถเป็นเหตุการณ์ X หลายรายการได้ X จัดเตรียมฟังก์ชันสำหรับการรวมเหตุการณ์เหล่านี้ในขณะที่ยังคงตัวดัดแปลง
X กำหนดสัญลักษณ์สำหรับแต่ละปุ่มที่อาจปรากฏบนแป้นพิมพ์ของคุณ มันให้ค่าอื่น ๆ (เช่น Unicode) โดยการจัดการพิเศษในฟังก์ชั่นที่รวมเหตุการณ์
แต่ "เมตา" เป็นกรณีพิเศษ
แอ็พพลิเคชัน X ไม่มีmetaคีย์ยกเว้นโดยการประชุม X ไม่มีคำจำกัดความสำหรับคีย์เมตาหรือตัวดัดแปลงเมตา อัตภาพขั้วมองหาAlt-key และ / หรืออย่างใดอย่างหนึ่งของการปรับเปลี่ยนที่รู้จักกันไปเช่นxmodmap
คุณลักษณะxkb ในmod2
ภายหลังทำให้สิ่งต่าง ๆ มีความซับซ้อน (แต่ไม่ได้ปรับปรุงให้ดีขึ้นเมื่อเทียบกับการสนทนานี้) โดยการให้ข้อมูลอีกชั้นหนึ่งเพื่อค้นหากุญแจAlt
การประชุมของหลักสูตรสามารถนำคุณเพียงเพื่อให้ห่างไกลที่ได้รับค่าxmodmap
มิได้xkb
รู้อะไรโดยเฉพาะอย่างยิ่งเกี่ยวกับเมตา ตัวอย่างเช่น xterm สามารถกำหนดค่าได้และผู้ใช้บางคนไม่ต้องการกำหนดค่าเมตาด้วยวิธีเดียวกัน ตัวอย่างเช่นAltอาจไม่ใช่เมตาคีย์ที่ตั้งใจเช่นหากมีการใช้ในtranslation
ทรัพยากร ที่สำคัญอีกประการหนึ่งที่อาจจะเป็นกุญแจสำคัญ meta แต่ผู้ใช้ (โดยเฉพาะผู้ที่ใช้ลำดับหนีในทุบตี) Altอาจต้องการตัวหนีไปเมื่อผู้ใช้กด แต่โปรดจำไว้ว่าหากไม่มีการกำหนดค่าเป็นตัวดัดแปลงจะไม่มีสิ่งใดเกิดขึ้น: xterm ไม่ได้รวมเหตุการณ์เข้าด้วยกัน
xterm มีการตั้งค่าทรัพยากรหลายอย่าง (บันทึกไว้ในหน้าคู่มือ ):
altIsNotMeta
และaltSendsEscape
(เพิ่มในปี 2550 )
eightBitInput
ตั้งแต่ปี 2549สอดคล้องกับความรู้สึกดั้งเดิมของโหมดเมตาและมีลำดับการยกเว้นสำหรับสิ่งนี้ซึ่งให้ความสามารถในการเทอร์มินัลsmm
และrmm
(ตั้งค่า / ลบเมตาโหมด)
eightBitInput
ได้รับการแก้ไขในปี 2003เพื่อนำ UTF-8 มาพิจารณาด้วยการเปลี่ยนค่า Unicode ที่ถอดรหัสแล้วเป็น 128 แทนที่จะเป็นไบต์อินพุตดิบ
metaSendsEscape
วันที่จากปี 1999
eightBitInput
metaSendsEscape
เป็นเรื่องที่เก่ากว่า ที่มีการใช้งานตัวเลือกระหว่างโหมดเมตา (เพิ่มบิตที่แปด) หรือนำหน้าคีย์ด้วยescapeตั้งแต่ X11R4 (1989) แต่คุณสมบัติถูกกำหนดเมื่อเริ่มต้น: มันถูกตรวจสอบในระหว่างการเริ่มต้นเพื่อตรวจสอบว่าอินพุตถูกตั้งค่าให้อนุญาต 8 บิตหรือ 7 เท่านั้นหลังจากนั้นมันไม่เปลี่ยนแปลง
บางคนถือเอาสอง ( 8th-bitและ escape-prefix) ซึ่งอ้างถึงหลังเป็นโหมดเมตา ขึ้นอยู่กับมุมมองของคุณในเรื่องการeightBitInput
ตั้งค่าทรัพยากรของ xterm เป็นส่วนหนึ่งของการแก้ปัญหาเพื่อรับเมตาคีย์ที่ใช้การได้
อ่านเพิ่มเติม:
MENU
คีย์ของคุณถูกสังเกตเห็นโดย X หรือไม่? คุณใช้ตัวจัดการหน้าต่างอะไร - บางตัวสามารถช่วยคุณกำหนดคีย์ได้