我是 Emacs 用戶,我只在終端中使用它。我正在嘗試打字,C-c C-,
因為它綁定了一個重要的命令。然而,每當我嘗試擊打時C-,
,它都會像 一樣發生,
。
我在 Ubuntu Linux 上運行,我認為我的桌面是 Gnome。 (我通常在 macOS 上開發,但在這種情況下不能。)
答案1
您的終端不支援它,並且很可能不支援任何終端(手動配置除外)。
終端機Ctrl以兩種方式處理+鍵:
- 對於字母 – 透過清除字母 ASCII 值的第 7 位和第 6 位,例如
V
二進位 0101'0110,而 Ctrl+V 則作為二進位 0001'0110 發送。 (這也是 Ctrl+letter 和 Ctrl+Shift+letter 執行相同操作的原因;第 6 位元表示大寫狀態,因此它們產生相同的程式碼。) - 對於特殊鍵 – 透過傳送商定的“轉義序列”,例如
ESC [1;5C
Ctrl+Right。
(這裡的「字母」實際上涵蓋了整個 ASCII 0x40–0x7F 範圍,因此它包括一些特殊字符,例如 Ctrl+] 或 Ctrl+\。)
第一種情況不能用於逗號(二進制0010'1100),因為生成的代碼與用於Ctrl+L 的代碼(二進制01?0'1100)完全無法區分- 兩者都只會產生相同的0000'1100位元組.
不能使用第二種情況,因為還沒有人在您的終端中為 Ctrl+ 添加特殊的鍵代碼。這在技術上是可行的,但您必須修補終端模擬器和 Emacs 才能就新的程式碼序列達成協議。 (有些用戶透過「借用」很少使用的序列(例如 F13/F14/... 鍵)來實現此目的。)
也可以看看: