เมื่ออยู่ในโหมด javascript พยายามใช้C-c C-m iพบข้อผิดพลาดว่า " C-c RETไม่ได้กำหนดหรือไม่"
อะไรทำให้ Emacs เชื่อว่าฉันกำลังกดRET?
ฉันจะทำให้การล็อคปุ่มกดนี้ทำงานอย่างถูกต้องได้อย่างไร
เมื่ออยู่ในโหมด javascript พยายามใช้C-c C-m iพบข้อผิดพลาดว่า " C-c RETไม่ได้กำหนดหรือไม่"
อะไรทำให้ Emacs เชื่อว่าฉันกำลังกดRET?
ฉันจะทำให้การล็อคปุ่มกดนี้ทำงานอย่างถูกต้องได้อย่างไร
คำตอบ:
Emacs "คิด" ซึ่งC-mเป็นRETเพราะ "Control M" เป็นอักขระควบคุม ASCII "carriage return" แม้ว่าเหตุผลนี้คือ Emacs "ที่ผ่านมา" สามารถเรียกใช้งานในเทอร์มินัลและดังนั้นจึงจำเป็นต้องสนับสนุนวิธีที่เทอร์มินัลยังคงทำงานอยู่ในขณะนี้
ลองเปิดหน้าต่าง terminal, พิมพ์ " ls" C-mและกด คุณจะเห็นว่ามันถูกตีความว่าเป็น "ผลตอบแทน" แม้ว่าคุณจะไม่ได้อยู่ใน Emacs
ดูควบคุมตัวละครในวิกิพีเดียสำหรับรายละเอียดเกี่ยวกับตัวควบคุม
หากต้องการแยกความแตกต่างC-mจากRETใน Emacs GUI หนึ่งสามารถเปลี่ยนC-iเป็นC-mในคำตอบของ@nispio :
(define-key input-decode-map [?\C-m] [C-m])
;; now we can do this:
(defun my-command ()
(interactive)
(message "C-m is not the same as RET any more!"))
(global-set-key (kbd "<C-m>") #'my-command)
ดูสิ่งนี้ด้วย
วิธีแยกความแตกต่าง Ci จาก TAB ซึ่งมีความสัมพันธ์กันอย่างใกล้ชิด
วิธีผูก Ci ต่างจาก TAB อย่างไร และคำตอบนี้โดยเฉพาะ
C-mเป็นแผนที่คำนำหน้าสำหรับหลายเคอร์เซอร์