Emacs中的'k'键盘绑定在ruby模式下

时间:2011-12-06 00:20:10

标签: ruby emacs

我正在学习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配置文件中。我很困惑,有点沮丧。任何人都可以对此发光吗?

2 个答案:

答案 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"指令。