【发布时间】:2015-01-30 19:31:07
【问题描述】:
这似乎是一些我不明白的基本 Emacs 配置问题。
我在现场预装了 Emacs 24.3。在 Verilog 文件中,按 M-s 绑定到 p4-current-file “edit”(Perforce 操作),同样 M-e 绑定到 p4-current-file “sync”。一切都很好。 问题出在 VHDL 文件中,M-s 也是如此,但 M-e 绑定到“vhdl-end-of-statement”。我希望它像在 Verilog 中一样进行“p4 编辑”。
似乎 vhdl-mode 覆盖了 M-e 键功能,我找不到如何永久更改它。如果我执行 local-unset-key 并取消设置 M-e,我会得到想要的结果,M-e 会进行 p4 编辑,但是当我重新启动 Emacs 时,M-e 会再次执行“vhdl-end-of-statement”。
如何更改 M-e 以永久执行“p4 编辑”?我不精通 Lisp,但很乐意获得如何更改这一点的说明。 谢谢。
【问题讨论】:
-
请注意,在许多主要模式中,
M-e将设置为相当于语句结尾/句子结尾。您可能会发现在日志运行中重新绑定您的 perforce 绑定更容易。 -
查看它使用的键盘映射的 VHDL 模式代码 - 它可能是
vhdl-mode-map。在该键盘映射中定义M-e为您想要的命令。如有必要(例如,如果一开始未定义模式映射),您可以将define-keysexp 放在模式挂钩上,以便在打开模式时生效。 -
MrBones,感谢您的建议,我会这样做,这也是更改 perforce 绑定的最简单解决方案(见下文)
-
德鲁,感谢您的帮助。我似乎无法进入“vhdl-mode-map”,您能否提供详细说明?在 emacs 安装目录中有一个文件 emacs/24.3/lisp/progmodes/vhdl-mode.elc,可能就是定义 vhdl 绑定的地方。它是公开的,所以我无法更改它,但也许我可以将 vhdl 模式定义复制到本地文件,让 emacs 从我可以修改的本地文件中读取定义?