我从this question得到了问题,似乎我们无法将 shift 与 meta 绑定,如M-S-t
(始终翻译为M-t
),但我们可以使用 control 这样做C-S-t
(作为C-T
)。
正如接受的答案所说,我们可以使用M-T
,但为什么我们不能将它与 meta 一起使用?当与 meta 一起使用时,Emacs是否会忽略shift
?
答案 0 :(得分:2)
我认为当没有使用Ctrl时,Emacs会忽略S-
字母。
即。它与Meta无关;同样的事情适用于其他非Ctrl修饰符(实际上没有其他修饰符 - 你也不能绑定到普通S-t
)。
理由可能是Ctrl键是唯一一个需要 字母的唯一情况:
(emacs) Modifier Keys
说
The default key bindings in Emacs are set up so that modified
alphabetical characters are case-insensitive. In other words, ‘C-A’
does the same thing as ‘C-a’, and ‘M-A’ does the same thing as ‘M-a’.
This concerns only alphabetical characters, and does not apply to
“shifted” versions of other keys; for instance, ‘C-@’ is not the same as
‘C-2’.
A <Control>-modified alphabetical character is always considered
case-insensitive: Emacs always treats ‘C-A’ as ‘C-a’, ‘C-B’ as ‘C-b’,
and so forth. The reason for this is historical.
For all other modifiers, you can make the modified alphabetical
characters case-sensitive when you customize Emacs. For instance, you
could make ‘M-a’ and ‘M-A’ run different commands.
通过我的记忆终端不区分控制字符的情况,所以我会推测&#34;历史&#34;原因与此有关。
至少在手册中记录是合理的。如果目前没有相关的错误,您可能希望M-x report-emacs-bug
建议这样的改进。
请注意,Shift修饰符可以与非字母键一起使用,有或没有其他修饰符。例如,M-S-SPC
是一个公认的序列。