我正在学习emacs,并开始将其用于ruby编程。作为emacs的新手,我根据bbatsov(https://github.com/bbatsov/emacs-prelude)的Prelude软件包进行了配置,基本上很棒。我正在使用http://emacsformacosx.com/builds中的Mac Emacs 24预测试包。
我遇到的问题可能与此无关 - 不确定它是否是ruby-mode包中的错误。
当我处于ruby模式并且按下“k”键时,就像键入“knackered”一样,“k”键充当前缀键(“k”未插入缓冲区但显示在迷你缓冲区)。我可以在ruby模式下插入“k”字符的唯一方法是C-q k,这真的很烦人。
我已经完成了关于键盘映射的所有文档并且已经通过所有配置文件(ELPA,模块,自定义,初始化等),并且找不到任何可以打开它的内容,包括在ruby-mode配置文件中。我很困惑,有点沮丧。任何人都可以对此发光吗?
答案 0 :(得分:1)
我不知道是什么打开了,但你应该能够使用类似的东西来覆盖它:
(local-set-key (kbd "k") 'self-insert-command)
您可以使用 M - :运行此操作。您也可以将此行放在ruby模式钩子中。
答案 1 :(得分:0)
所以,我自己就是一个emacs noob而且我遇到了同样的问题。我发现我创建了一个自定义yasnippet,并且在自动生成的模板中有一个指令将代码段绑定到密钥:binding: "keybinding"
。删除后,问题就消失了。
TL; DR
我发现它是因为当我输入C-h m
列出活动模式时,我看到了一些有关K E Y B I N D I N Prefix Command
的奇怪内容。在我看到之后,我点击了C-h k keybinding
(显示哪个命令绑定到那组击键)并且它出现了一些错误消息,其中还包括我记得大约一天前写的代码片段。我去了yasnippet目录并编辑了代码片段,我的问题就消失了。
我知道您已经解决了问题,但是对于可能遇到此问题的其他任何人,但又不想仅仅覆盖“k”键以按预期工作,您可能会尝试查找带有binding: "keybinding"
指令。