我編寫了一個elisp函數和幾個defvar
,我使用它們交互地添加增強單元測試宏。由於它與Boost一起使用,它只會在C++模式下使用。目前它在我的init文件中,所以它總是以每種模式加載。將功能添加到emacs主模式
我該如何做到這一點,所以這個功能只能在C++模式下使用,就好像我將它添加到主模式本身一樣。
我編寫了一個elisp函數和幾個defvar
,我使用它們交互地添加增強單元測試宏。由於它與Boost一起使用,它只會在C++模式下使用。目前它在我的init文件中,所以它總是以每種模式加載。將功能添加到emacs主模式
我該如何做到這一點,所以這個功能只能在C++模式下使用,就好像我將它添加到主模式本身一樣。
如果你想你寫在需要時只加載的代碼,你可以把它變成自己的文件(比如說boost-unit-test.el
),並從.emacs
您可以添加:
(eval-after-load "cc-mode" '(require 'boost-unit-test))
注,這假定該文件在您的load-path
中,並且具有(provide 'boost-unit-test)
作爲其中一行。
現在,一旦加載了這個文件,那些變量和那些命令就被全局定義了,這就是Emacs的方式。這與將代碼保留在.emacs
文件中沒有區別。無論哪種方式,它只會被加載/評估一次(除非您強制加載多次 - 但您必須努力做到這一點)。
這正是我所期待的。 –
這真的取決於你在說什麼。你想要代碼被延遲加載?你是否希望僅在C++模式下綁定到鍵的命令? –