如何使Emacs(没有GUI)区分Ctrl和x2B;班次+;S和Ctrl+;s

如何使Emacs(没有GUI)区分Ctrl和x2B;班次+;S和Ctrl+;s,emacs,keyboard-shortcuts,Emacs,Keyboard Shortcuts,我试图教Emacs标准快捷键。我通常通过SSH连接使用Debian的emacs23 nox版本。其中之一是针对SaveAs的CTRL+SHIFT+S。配置的相关部分如下所示: (global-set-key (kbd "C-S") 'write-file) (global-set-key (kbd "C-s") 'save-buffer) (全局设置键(kbd“C-S”)'写入文件) (全局设置键(kbd“C-s”)'保存缓冲区) 但会导致CTRL+SHIFT+S和CTRL+S调用'sa

我试图教Emacs标准快捷键。我通常通过SSH连接使用Debian的emacs23 nox版本。其中之一是针对SaveAs的CTRL+SHIFT+S。配置的相关部分如下所示:

(global-set-key (kbd "C-S") 'write-file) (global-set-key (kbd "C-s") 'save-buffer) (全局设置键(kbd“C-S”)'写入文件) (全局设置键(kbd“C-s”)'保存缓冲区) 但会导致CTRL+SHIFT+S和CTRL+S调用
'save-buffer
(或
'write-file
,具体取决于最后一行)。我还尝试了
“C-S-S”
而不是
“C-S”

“不使用Shift键”部分表示这是不可能的。我读了,但接受的解决方案对我不起作用(C-h k CTRL+SHIFT+S打印C-S)


有没有办法让Emacs(无GUI版本)区分CTRL+SHIFT+S和CTRL+S?

你不能,字符集中没有任何大写控制字符的规定。获得移位和控制的唯一方法是直接进入窗口系统,因此您需要GUI版本。

要澄清一点:如果您使用带有窗口管理器的Emacs,那么您可以绑定键
[(控制移位)]
,它是C-s-s(也称为C-s,但不是以这种方式在Emacs中编写的)。此键与ASCII控制字符
C-s
完全不同,后者没有小写/大写版本


所以答案是(a)你必须使用图形终端;(b) 绑定
[(控制shift?s)]
以获取大写版本。

在相关说明中,最好将带有shift和control的键绑定到需要GUI的命令。因为未绑定密钥在终端Emacs中是稀缺资源。