具体来说,如果我输入“CM-SPC”,gnome-terminal 会将“M-SPC”发送给 emacs。xterm 没有这个问题。
请注意,这与 emacs 键绑定与菜单访问键冲突的问题不同。这不是触发 gnome-terminal 键绑定的情况,而是 gnome-terminal 只是占用了特定键绑定的修饰符之一。
答案1
当 Emacs 在终端中运行时,它的输入是一系列人物。当 Emacs 使用其图形用户界面运行时,其输入是按键,使其具有更广泛的输入可能性。例如,C-`当 Emacs 在其 GUI 中运行时,按键(控制反引号)可以绑定到函数,但不能从终端(甚至是终端仿真器,它本身就是一个图形应用程序)绑定,因为没有 Control-Backtick 这样的字符(不在ASCII,不在ISO-Latin-1,不在通用字符集)。
C-M-SPC您正在尝试从终端发送不存在的字符。这确实xterm
能起作用,但您不应该期望每个终端都能伪造 Emacs 的输入,这样您就可以按下不映射到终端中实际字符的组合键。