2012-07-24 42 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