2

嗨,我最近在尝试将命令绑定到 Meta 键时遇到了一些奇怪的问题。这只是今天才开始发生,我真的很困惑。

在我的绑定列表中,我有诸如(define-key map (kbd "M-f") 'forward-char)Ctrl 和 Hyper 之类的定义,但由于某种原因,当我尝试使用 Meta 的组合进行绑定时,它就失败了。

例如,以下(define-key map (kbd "C-M-f") 'forward-word)显示一条错误消息。

Warning (initialization): An error occurred while loading '/home/flood/.emacs.d/init.el': error: Key sequence C-M-f starts with non-prefix key To ensure normal operation, you should investigate and remove the cause of the error in your initialization file. Start Emacs with the '--debug-init' option to view a complete error backtrace.

从 --debug-init 开始时,它不会显示任何有用的信息。有没有人有任何想法,这真的很令人沮丧!

4

1 回答 1

2

因此,在浪费了我一天的几个小时之后,我终于解决了这个问题。这似乎是 emacs 的一个错误,但目前我不打算做进一步的测试,也许以后。

我之前包含了一个命令,该命令使用的C-[组合导致它之后的任何命令都包含一个 Meta,要么被宣布为无效,C-M要么H-M被宣布为无效。我不得不四处移动命令,直到我发现错误会分别在之后或之前出现和消失。

如果有人正在研究 emacs 项目并希望对此进行研究,请尝试一下,如果您无法重现错误,我可能会转发一个对我来说有问题的示例。发布它的主要原因是为了帮助将来可能遇到同样挫折的其他人。

于 2012-06-23T17:32:02.550 回答