我有以下绑定:
M-q => fill-paragraph
M-S-q => unfill-paragraph
但是,任何一个关键组合都会产生第一个:fill-paragraph
,所以它
似乎是Shift
因此
unfill被忽略。我订了
第二我自己:
(prelude-require-package 'unfill)
(define-key prelude-mode-map "\M-\S-q" nil) ; don't let prelude dictate it
(global-set-key (kbd "M-S-q") 'unfill-paragraph)
Emacs有一种行为可以回归到一个未移位的序列
当移位的版本不存在时(这似乎很好,但应该
不会发生这种情况)。所以,如果我没有M-S-q
绑定,然后按下应该导致fill-paragraph
,这
是我不高兴看到的。这表明不知何故Emacs
不知道第二次绑定。但我已经证实确实如此
知道C-h f unfill-paragraph
确认它。从中调用
M-x
表明它运作良好。
为什么忽略Shift
?
(这是Emacs的GUI版本,我的Shift键适用于其他人 的东西。)
答案 0 :(得分:3)
Emacs有一些令人困惑的问题w.r.t处理shift,因为shift修饰符有时被视为普通修饰符,但其他时候是特殊的,以修改基本char,因此它是大写的。
在这种情况下,我认为你需要?\M-Q
。相比之下,?\C-Q
与?\C-q
相同,因此您需要使用?\C-S-q
将某些内容绑定到C-S-q。
这可能值得M-x report-emacs-bug
。