首页 文章

'k'在Emacs中以ruby模式进行键绑定

提问于
浏览
1

我正在学习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 回答

  • 1

    所以,我自己就是一个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目录并编辑了代码片段,我的问题就消失了 .

    我知道你已经解决了你的问题,但是对于其他可能遇到这个问题的人,但是没有按预期工作的关键,你可能会尝试寻找带有 binding: "keybinding" 指令的片段 .

  • 0

    我不知道是什么开关,但你应该能够使用以下内容覆盖它:

    (local-set-key (kbd "k") 'self-insert-command)
    

    您可以使用M-:运行它 . 您也可以将此行放在ruby模式钩子中 .

相关问题