2012-07-24 32 views
2

我想知道是否有永久删除主要模式的方法让我们说从Emacs的VHDL模式?我已经检查过“How do I turn off vhdl-mode in emacs?”,但我想知道是否要编写自己的发行版,如何从Emacs中永久删除某些模式?如何禁用模式

- 仅限实验,因此没有授权问题等。

回答

5

所有模式均可用作文件。在我的机器上,VHDL模式为/usr/share/emacs/23.4/lisp/progmodes/vhdl-mode.el.gz。如果您删除此文件,则根本无法打开该文件。如果其他模式依赖于在此模式下实现的功能,则它们也会受到影响。

此外,模式可能分布在多个文件中,因此您可能必须删除多个文件。

+0

非常感谢,我怎么能知道什么取决于这种模式,它使用什么文件?如果可能的话,你可以将它们作为编辑添加到答案中吗你真棒.. – Daniel 2012-07-24 11:20:19

+1

我不知道任何方式阅读源代码。查找所有'require'语句并查看其他文件,这些文件'需要'这个模式提供了什么。这是一个开始。 – 2012-07-24 11:22:22

4

您可以通过从auto-mode-alist变量中删除它来有效地禁用某个模式。一旦删除,该模式将永远不会被emacs自动选择,但仍然可以手动启动。这删除vhdl-mode

(rassq-delete-all 'vhdl-mode auto-mode-alist) 
+0

只是好奇:什么是'rassq'?它意味着什么? – aartist 2012-07-25 02:00:08

+1

关联列表的根目录是“assoc”(缩写为“ass”),又名alist。前导“r”表示它是一个反向操作,所以对列表值而不是键进行操作。 “q”表示它使用“eq”(身份)进行比较而不是“相等”(相等)。 – ataylor 2012-07-25 04:20:34