เป็นไปได้หรือไม่ที่จะใช้ปุ่มแฮช (#, ปอนด์) ในการเชื่อมโยงคีย์ใน Sublime Text 3


1

บนแป้นพิมพ์ของสหราชอาณาจักรสัญลักษณ์แฮช (# หรือที่รู้จักในที่อื่น ๆ ) มีรหัสของตัวเอง (ที่มีเครื่องหมายตัวหนอนอยู่ด้านบน)

สันนิษฐานว่าเป็นเพราะมันไม่ใช่คีย์มาตรฐานบนคีย์บอร์ดของสหรัฐอเมริกาจึงไม่ปรากฏในรายการของคีย์ที่มีชื่อในเอกสารประกอบเพื่อใช้ในการกดแป้นที่กำหนดเอง

มีวิธีอ้างอิงเมื่อสร้างการโยงคีย์แบบกำหนดเองหรือไม่


2
ช้าไปหน่อย แต่การเข้าสู่sublime.log_input(True)คอนโซล Sublime และจากนั้นกดปุ่มจะบอกคุณว่า Sublime เห็นว่ามันเป็นอย่างไร จากนั้นคุณสามารถใช้รหัสนั้นในการผูกของคุณ
OdatNurd

@OdatNurd ขอบคุณที่มีประโยชน์ที่จะรู้เกี่ยวกับ chr evt: # (0x23)คอนโซลให้ฉัน แต่กลับกลายเป็นว่าผมสามารถผูกอย่างใดอย่างหนึ่ง#หรือ~คำสั่งไป แต่ไม่ได้อยู่รวมกันที่มีประโยชน์มากขึ้นเช่นหรือctrl+# alt+#ฉันไม่คิดว่าจะมีวิธีใช้0x23รหัสหรือไม่ ฉันไม่เห็นสิ่งใดที่อ้างถึงวิธีนี้ในรูปแบบคีย์เริ่มต้น
Dan

1
คุณสามารถใช้อักขระ / ชื่อไม่ใช่รหัสฐานสิบหก สิ่งที่คุณเห็นเป็นผลผลิตในบันทึกเมื่อคุณกดctrl+#และalt+#? อาจมีรูปแบบแป้นพิมพ์ที่แตกต่างกันคีย์แสดงถึงสิ่งที่แตกต่างเมื่อใช้กับตัวดัดแปลง
OdatNurd

@OdatNurd ความคิดที่ดีผลลัพธ์ที่แปลก #รวมกันมาเป็นแม้ว่าพวกเขาจะรวมกับ'(apostrophe) แทนเช่นkey evt: shift+control+'ยกเว้นctrl+#ที่ลงทะเบียนขณะที่ทั้งสองแล้วkey evt: control+' chr evt: (0x1c)ชุดค่าผสมทั้งหมดที่มีคีย์อะโพสโทรฟีที่เกิดขึ้นจริงปรากฏออกมาราวกับว่าพวกเขาได้รวมกับ backtick
Dan

คำตอบ:


4

คำตอบสั้น ๆ สำหรับคำถามของคุณคือสิ่งนี้เป็นไปได้ แต่การเชื่อมโยงที่คุณต้องการอาจไม่ใช่สิ่งที่คุณคาดหวังว่าเป็นเพราะรูปแบบแป้นพิมพ์ของคุณและ / หรือบิต "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กุญแจเพราะนั่นคือกุญแจที่ฉันกด

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