home Glamenv-Septzen(ぐらめぬ・ぜぷつぇん)(archive)

Emacs/EmacsLispロードパス(load-path)の調整

作成日: 2003-05-25 14:34:29   /   last updated at: 2009-04-26 14:43:58
カテゴリ: Emacs 

例えば "~/sample.el" というLispソースをロードし、Emacs起動時に評価・実行するには、以下の一文を.emacs.elに設定します。(またはLispモードで評価させます)

(load "sample")

実際には、その前にLispソースを探索するディレクトリを設定する必要があります。
load-path 変数にこんな感じで、対象ディレクトリを追加します。

(setq load-path
    (append (list nil
            (expand-file-name "~/")
            (expand-file-name "~/site-lisp"))
        load-path))

load-pathリストに、ホームディレクトリとその中のsite-lispディレクトリを追加しています。
さらに、nilを追加するとカレントディレクトリも探索対象になります。
expand-file-nameはホームディレクトリを表す "~" をフルパスに展開します。これにより、間違いなくホームディレクトリを指示できます。

load関数をもう少し詳しく解説します。

(load filename (optional) missing-ok nomessage nosuffix must-suffix)
filename
ロードするLispソースファイル。nosuffix がnilであれば、.el or .elcを勝手にくっつけて、load-path内を探索する。nosuffixがnil以外であれば、.el or .elc までfilenameで指定されているものとする。
missing-ok
nilだと、Emacsはエラーを通知する。nil以外だと、エラーは通知されず、load関数はnilを返す。
nomessage
nilだと、ロード中にエコー領域に「Loading hoge...」などと表示。nil以外だと何も表示しない。
nosuffix
nilだと、filename.elcをまず探し、次にfilename.elを探す。nil以外だと、filenameにすでに.el or .elcが含まれているものとして探索する。
must-suffix
nil或いは省略されていれば、適当に.elや.elcを付加して探索。nil以外ならfilenameにすでに.el or .elcが含まれているとして探索。
(load "sample")

を詳しく説明すれば、

  1. エラーがあれば通知
  2. "sample.elc", "sample.el" の順にload-path内を探索
  3. ロード中にエコー領域にメッセージ表示

という設定でsample.elc or .el をロード、評価しなさい、という意味になります。


original url: https://www.glamenv-septzen.net/view/365