ไม่สามารถผูก Meta + Shift + Character

Oct 14 2020

ฉันไม่สามารถผูก Meta + Shift + อักขระใด ๆ

ฉันไม่พบปัญหาเหล่านี้กับคีย์ผสมอื่น ๆ (เช่น Control + Shift + Key)

ด้านล่างนี้เป็นกรณีเฉพาะที่ฉันไม่สามารถไปทำงานได้:

(global-set-key (kbd "M-S-Z") 'zap-up-to-char-backward)
(defun zap-up-to-char-backward (char)
  (interactive "cZap up to char (backward): ")
  (zap-up-to-char -1 char))

คำตอบ

4 Drew Oct 15 2020 at 00:31

M-S-Zจะหมายถึง Meta + Shift Z+ แต่Z(ตัวพิมพ์ใหญ่) เป็นตัวเองในสิ่งที่ Emacs ใช้สำหรับ+Shift>z

S-Zมีแนวโน้มที่สำคัญไม่มีบนแป้นพิมพ์ที่สอดคล้องกับ นั่นเป็นเหตุผลที่คุณบอกว่ามันไม่ได้ผล

หากคุณใช้C-h bคุณจะพบการผูกคีย์ของคุณอยู่ในรายการตกลง และถ้าคุณใช้คุณจะเห็นว่ามันบอกว่าก็ผูกพันกับC-h w zap-up-to-char-backwardM-S-Z

ปัญหาคือคุณไม่มีวิธีพิมพ์ลำดับคีย์ดังกล่าวด้วยแป้นพิมพ์ของคุณ

C-มีความพิเศษตรงที่C-Zตีความว่าเป็นอักขระควบคุมC-zนั่นคือ ASCII Control Z


ยังไม่ชัดเจนว่าคุณต้องการทำอะไร คุณต้องการรวมคีย์ผสมของแป้นพิมพ์Meta+ Shift>+ zหรือไม่ ถ้าเป็นเช่นนั้นการใช้งาน(kbd "M-Z")ไม่ได้หรือ(kbd "M-S-z")(kbd "M-S-Z")