Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Emacs 为什么密钥绑定M-S-t在C-S-t工作时失败?_Emacs_Key Bindings - Fatal编程技术网

Emacs 为什么密钥绑定M-S-t在C-S-t工作时失败?

Emacs 为什么密钥绑定M-S-t在C-S-t工作时失败?,emacs,key-bindings,Emacs,Key Bindings,我从中得到了这个问题,似乎我们不能用meta-likeM-S-t(总是翻译成M-t)绑定shift,但我们可以用控件来绑定,比如C-S-t(作为C-t) 正如公认的答案所说,我们可以使用M-T,但是为什么我们不能将它与meta一起使用呢?当与meta一起使用时,Emacs会忽略shift吗?我认为当不使用Ctrl键时,Emacs会忽略字母的S- i、 这与元无关;同样的情况也适用于其他非Ctrl修饰符(事实上,如果没有其他修饰符,您也不能绑定到普通的S-t) 理由可能是Ctrl键是字母需要显式s

我从中得到了这个问题,似乎我们不能用meta-like
M-S-t
(总是翻译成
M-t
)绑定shift,但我们可以用控件来绑定,比如
C-S-t
(作为
C-t


正如公认的答案所说,我们可以使用
M-T
,但是为什么我们不能将它与meta一起使用呢?当与meta一起使用时,Emacs会忽略
shift
吗?

我认为当不使用Ctrl键时,Emacs会忽略字母的
S-

i、 这与元无关;同样的情况也适用于其他非Ctrl修饰符(事实上,如果没有其他修饰符,您也不能绑定到普通的
S-t

理由可能是Ctrl键是字母需要显式shift修饰符的唯一情况:

(emacs)修改键

设置Emacs中的默认密钥绑定,以便
字母字符不区分大小写。换句话说,“C-A”
做与“C-a”相同的事情,“M-a”做与“M-a”相同的事情。
这只涉及字母字符,不适用于
其他按键的“移位”版本;例如,“C-@”与
“C-2”。
始终考虑修改字母顺序的字符
不区分大小写:Emacs始终将“C-A”视为“C-A”,“C-B”视为“C-B”,
等等原因是历史的。
对于所有其他修改器,可以按字母顺序修改
自定义Emacs时区分大小写的字符。比如说你,
可以使“M-a”和“M-a”运行不同的命令。
据我记忆,终端不区分控制字符的大小写,因此我推测“历史”原因与此有关

至少在手册中记录这一点是合理的。如果目前不存在相关缺陷,您可能希望
M-x报告emacs缺陷
,以提出改进建议

请注意,Shift修饰符可以与非字母键一起使用,也可以与其他修饰符一起使用,也可以不使用其他修饰符<例如,code>M-S-SPC
是一个可识别的序列。

如Emacs中所述,实际上并没有忽略
S-t
(例如),但它确实将其识别为
t
[33554548]
,这不是Emacs在键入Shift+t时看到的,因此,在正常情况下,不会使用
S-t
的任何绑定。但是,计算
(执行kbd宏(kbd“S-t”)
会调用它。