小さいマクロを一つ二つインストールするだけなら
.emacs
ファイルにでも書いておけばすみますが、
大抵はその内沢山のマクロをインストールすることになると思います。
こういう場合は自分のホームディレクトリの下に
~/lisp
などの名前のディレクトリを作り、次の
ようにして load-path を通します。
(defmacro push (elm list) "push ELM in front of LIST" (list 'setq list (list 'cons elm list))) (push (expand-file-name "~/lisp") load-path)
他にも追加する場合は、最後の式と同様なものをいくつも追加するだけです。ま、やり 方は他にもいろいろあるわけですけど。
こうしておいて
~/lisp
の下に追加する Emacs Lisp のファイル
を置きます。このファイルを例えば myfile.el
だとしておきます。この時バイトコンパイル
しておくと、より速くロードしたり実行したり出来るようになります。
さて、追加するマクロが小さかったり、頻繁に使うマクロである場合は
.emacs
に
(load "myfile")
と書いておけば、Emacs 起動時に自動的に読み込んでくれます。ただし、大きくてあま り使わないようなファイルを全てこの形でロードすると起動が大変だし、Emacs も重く なっちゃいます。そういう場合はオートロードを使います。例えば myfile.el(c)の中で、mycommand というコマンドが定義されていたとします。 この場合、例えば
(autoload 'mycommand "myfile" "ここには説明を書く" t)
と書いておけば mycommand を実行する時点で初めて myfunc をロードするようになり ます。説明は面倒なら省略出来ます。(その場合は nil とでも書いといて下さい。) また、最後の引数の t は mycommand がインタラクティブに呼び出せることを指定して います。(本当はもう一つ引数があるのだけど、それは C-h f autoloadなんかで調べて下さい。)