Emacs に付いてくる Org-mode は古いので、自分で最新のものをダウンロードしてきて使うことにした。make info-installして、さて Info を読もうと思って M-x org-infoしたら、しれっと古い方が表示された。M-x infoで出てくる Info ファイルのもくじにある Org-mode の項も、古い方。
それまでの Info の設定と環境
自分でインストールした elisp の Info は ~/.emacs.d/info に入れ、init.elに
(add-to-list 'Info-additional-directory-list "~/.emacs.d/info")
と書いて、Info から見られるようにしている。
他には DDSKK の Info がここに入っていて、M-x infoで表示される Info のもくじに表示されている。
Emacs 23.3.1とOrg-mode 7.7。
問題
Info-additional-directory-listは優先順位が高くない。なので、Info のもくじやM-x org-infoでは新しい org-mode の Info ファイルが認識されない。
Emacs での Info ファイルのパスの変数について
関係する変数は以下の4つ。
Info-directory-list- Info ファイルを探すディレクトリのリスト。
Info-additional-directory-list- Info ファイルを探す追加のディレクトリのリスト。優先度は
Info-directory-listより低い。 Info-default-directory-list- 自動的に生成されるリスト。Info ファイルがありそうなディレクトリのリスト。
INFOPATH- シェルの環境変数。
Info ファイルを探すのに使われる変数の一つがInfo-directory-list。ただ、この変数は最初は空 (nil) で、Info が呼ばれた時に初期化される。INFOPATH が設定されている場合は INFOPATHの値がセットされる。INFOPATHを設定していない場合はInfo-default-directory-listのうち実際に存在するパスがセットされる。ただし、INFOPATHの最後がコロンの場合には、INFOPATHとInfo-default-directory-listがこの順に結合されたリストがセットされる。
Info ファイルを探すのに使われるもう一つの変数がInfo-additional-directory-list。追加で指定したいディレクトリがあればこの変数にセットする。
検索の優先順位には注意が必要。リストの先頭に近いディレクトリから検索される。さらに、Info-additional-directory-listは、Info-directory-listの後に検索される。同名の Info ファイルが存在する場合にはInfo-directory-listの方のファイルが表示される。
検索の優先順位を制御したい場合は、INFOPATH を設定すればよい。