EuA*_*reh 7 emacs elisp case-sensitive key-bindings
根据Emacs的手册,由于"历史原因",修饰键不区分大小写.
我可以改变这种行为吗?
我的目标是制造M-a和M-A表达不同的东西.
谢谢!
根据手册,
A修改后的Control字母字符始终被视为不区分大小写:Emacs始终将CA视为Ca,CB视为Cb,依此类推.其原因是历史性的.
所以你无法定义它们:
(global-set-key (kbd "C-a") 'xxx)
(global-set-key (kbd "C-A") 'yyy)
Run Code Online (Sandbox Code Playgroud)
但S-可以用于Shift,所以:
(global-set-key (kbd "C-a") 'xxx)
(global-set-key (kbd "C-S-a") 'yyy) ;; C-A
Run Code Online (Sandbox Code Playgroud)
没关系 和
对于所有其他修饰符,您可以在自定义Emacs时使修改后的字母字符区分大小写.例如,你可以让Ma和MA运行不同的命令.
所以你可以像这样定义键绑定:
(global-set-key (kbd "M-a") 'xxx)
(global-set-key (kbd "M-A") 'yyy)
Run Code Online (Sandbox Code Playgroud)