1

elisp関数と、defvarブーストユニットテストマクロをインタラクティブに追加するために使用するいくつかの関数を作成しました。Boostで使用されるため、c++モードでのみ必要になります。現在、それは私のinitファイルにあるので、常にすべてのモードでロードされます。

この機能をC++モードでのみ使用できるようにするには、つまり、メジャーモード自体に追加したかのようにするにはどうすればよいですか。

4

1 に答える 1

3

作成したコードを必要な場合にのみロードする場合は、独自のファイル(たとえばboost-unit-test.el)にコードを配置し、そこから次のコードを.emacs追加できます。

(eval-after-load "cc-mode" '(require 'boost-unit-test))

これは、ファイルがにload-pathあり(provide 'boost-unit-test)、行の1つとして含まれていることを前提としていることに注意してください。

さて、このファイルがロードされると、それらの変数とそれらのコマンドはグローバルに定義され、それがEmacsのやり方です。.emacsこれは、ファイルにコードを残した場合と同じです。そして、どちらの方法でも、ロード/評価は1回だけになります(複数回ロードするように強制しない限り、ただし、そのために作業する必要があります)。

于 2012-12-12T03:04:16.190 に答える