คำตอบสั้น ๆ สำหรับคำถามของคุณคือสิ่งนี้เป็นไปได้ แต่การเชื่อมโยงที่คุณต้องการอาจไม่ใช่สิ่งที่คุณคาดหวังว่าเป็นเพราะรูปแบบแป้นพิมพ์ของคุณและ / หรือบิต "hiccough" แบบลอจิคัลที่คุณอาจไม่คาดหวัง Sublime แม็พคีย์
อธิบายสาเหตุของการทำเช่นนั้นและวิธีที่คุณกำหนดว่าการเชื่อมโยงของคุณต้องมีลักษณะอย่างไรสำหรับคีย์นั้น (หรืออื่น ๆ ) ที่มีส่วนเกี่ยวข้องมากกว่านี้
โดยทั่วไปแล้ว Sublime ใช้รหัสสแกนเพื่อกำหนดว่าคุณต้องการกดปุ่มใด Scancodes ขึ้นอยู่กับตำแหน่งของคีย์บนคีย์บอร์ดและไม่ได้อยู่ที่ตัวละครที่พวกเขาสร้างขึ้นจริง
ผลที่สุดของเรื่องนี้ก็คือ Sublime จะเห็นปุ่มที่คุณกดราวกับว่าพวกมันอยู่บนคีย์บอร์ดของสหรัฐแม้ว่ามันจะไม่ใช่ก็ตาม รายการของคีย์ในรายการที่คุณพูดถึงในคำถามของคุณจะถือว่ารูปแบบแป้นพิมพ์มาตรฐานของสหรัฐอเมริกา
เพื่อวิเคราะห์ปัญหาการเชื่อมโยงคีย์หรือดูว่า Sublime กำลังอ่านอินพุตของคุณคุณสามารถเปิดการบันทึกอินพุตโดยเปิดคอนโซล Sublime ด้วยView > Show Console
จากเมนูและป้อนคำสั่งต่อไปนี้:
sublime.log_input(True)
ขณะที่เปิดใช้งานการบันทึกอินพุต Sublime จะรายงานข้อความในคอนโซลที่เกี่ยวข้องกับทุกเหตุการณ์อินพุตที่เห็น การบันทึกอินพุตยังคงมีผลจนกว่าคุณจะรันคำสั่งเดียวกันด้วยFalse
หรือรีสตาร์ท Sublime
โดยทั่วไปคุณจะเห็นหนึ่งในสิ่งต่อไปนี้:
chr evt: #
ซึ่งจะบอกคุณว่าคุณกดตัวละคร
key evt: backspace
ซึ่งจะบอกคุณว่าคุณกดปุ่ม
key evt
ตามด้วยchr evt
ซึ่งหมายความว่ากุญแจที่คุณกดเป็นสิ่งที่คล้ายกับกุญแจที่ตายแล้วซึ่งพยายามจะเพิ่มการออกเสียงลงในตัวละคร
- ไม่มีอะไรเลยถ้ากุญแจนั้นตายไปแล้วหรืออะไรบางอย่างที่อยู่นอก Sublime (เช่น OS) กินเหตุการณ์คีย์บอร์ดก่อนที่ Sublime จะมีโอกาสเห็นมัน
หากต้องการผูกกุญแจกับสิ่งที่รายงานchr
กิจกรรมการจับคู่ของคุณควรมีเพียงตัวอักษร:
{ "keys": ["#"], "command": "echo"},
ในการผูกคีย์ที่รายงานเป็นkey
เหตุการณ์คุณจะต้องใช้รหัสตามที่รายงานในเหตุการณ์รวมถึงตัวดัดแปลงใด ๆ (ใช้control
งานได้ดีctrl
):
{ "keys": ["backspace"], "command": "echo"},
จากข้อมูลทั้งหมดที่กล่าวมาสิ่งที่รายงานบันทึกการป้อนข้อมูลอาจไม่ใช่สิ่งที่คุณคาดหวังในตอนแรกซึ่งเป็นหนึ่งในรายการที่กล่าวถึงในความคิดเห็นของคำถามต้นฉบับของคุณ
คีย์ผสมที่สร้างตัวละครจะถูกรายงานว่าเป็นchr
เหตุการณ์ซึ่งหมายความว่าพวกเขาคำนึงถึงสถานะการเปลี่ยนแปลง คีย์ที่ไม่ได้สร้างตัวละครที่มีการรายงานว่าเป็นkey
เหตุการณ์ที่เกิดขึ้นและรวมถึงการปรับปรุงและที่สำคัญที่ถูกกด
บิตนั้นถูกเน้นเนื่องจากอาจไม่ใช่สิ่งที่คุณคาดหวังในตอนแรก
ตัวอย่างเช่นในรูปแบบแป้นพิมพ์ของสหรัฐอเมริกา#
และ3
แบ่งปันคีย์โดย#
เป็นเวอร์ชันที่เลื่อนของคีย์
ดังนั้น:
- 3:
chr evt: 3 (0x33)
- shift+3:
chr evt: # (0x23)
นี่เป็นเหตุผลที่สมเหตุสมผล การกดปุ่ม3
เพียงอย่างเดียวจะทำให้คุณรู้ได้อย่างแท้จริง3
ในขณะที่การใช้ Shift ทำให้คุณได้รับอักขระแฮช
อย่างไรก็ตามโปรดทราบสิ่งต่อไปนี้:
- Ctrl+3:
key evt: control+3
- Ctrl+#:
key evt: control+3
- Ctrl+Shift+3:
shift+control+3
นั่นคือ; เพื่อให้ได้#
ตัวละครฉันต้องกด shift แต่รายงานเหตุการณ์สำคัญมีไว้สำหรับ3
กุญแจเพราะนั่นคือกุญแจที่ฉันกด
sublime.log_input(True)
คอนโซล Sublime และจากนั้นกดปุ่มจะบอกคุณว่า Sublime เห็นว่ามันเป็นอย่างไร จากนั้นคุณสามารถใช้รหัสนั้นในการผูกของคุณ