在Emacs中禁用包密钥绑定覆盖

时间:2014-12-02 14:04:01

标签: emacs elisp perforce

这似乎是我不理解的一些基本的Emacs配置问题。

我在网站上预装了Emacs 24.3。在Verilog文件中,按M-s绑定到p4-current-file"编辑" (Perforce操作),同样M-e绑定到p4-current-file" sync"。一切都很好。 问题出在VHDL文件中,M-s也是如此,但M-e必然会被" vhdl-end-of-statement&#34 ;.我希望它能做到" p4编辑"就像在Verilog。

似乎vhdl-mode正在覆盖M-e键功能,我无法找到如何永久更改它。如果我执行local-unset-key并取消设置M-e,我会得到所需的结果,M-e会进行p4编辑,但是当我重新启动Emacs时,M-e会执行" vhdl-end-of-statement"试。

如何更改M-e以进行" p4编辑"永久性?我不熟悉Lisp,但很乐意获得如何改变它的说明。 感谢。

1 个答案:

答案 0 :(得分:1)

要从模式键盘映射中删除重载绑定,以便Emacs将恢复到通常使用的模式,您通常会执行以下操作:

(eval-after-load "vhdl-mode"
  '(progn
    (define-key vhdl-mode-map (kbd "M-e") nil) ;; unbind M-e
    (define-key vhdl-mode-map (kbd "M-a") nil))) ;; unbind M-a

正如MrBones评论的那样,这些并不是非常理想的自定义绑定。 Ms Me 都在Emacs中有标准用法(前者通常是一堆有用的东西挂起的前缀绑定),如果可能的话你应该考虑移动那些绑定到其他钥匙。

(我的印象是,#34;预先安装在网站上#34;版本已经有这些绑定了吗?在这种情况下,对于那些坚持这一点的人来说,这更像是一个注释......)