Carbon Emacsのinfoの再設定
Carbon EmacsにNetInstallでNavi2chをインストールしたのですが、infoにNavi2chが見当たらず、またターミナルの
infoで見るよりも一覧候補が少ないことに気がつきました。
Naiv2chのinfoファイルは、/Applications/Emacs.app/Contents/Resources/share/info/ に置いてあるのですが
このパスが、emacsにうまく認識されていないようです。
Info-default-directory-listにきちんと書かれているのですが、何故か無視されてしまいます。
すごく気になるので調べてみました。
まず、Info-directory-list、Info-default-directory-listは下記のように値がセットされています。
Info-directory-list ("/Applications/Emacs.app/Contents/Resources/info" "/Applications/Emacs.app/Contents/Resources/extra/info") Info-default-directory-list ("/Applications/Emacs.app/Contents/Resources/share/info/" "/usr/local/share/info/" "/usr/local/info/" "/usr/local/gnu/info/" "/usr/local/gnu/lib/info/" "/usr/local/gnu/lib/emacs/info/" "/usr/local/emacs/info/" "/usr/local/lib/info/" "/usr/local/lib/emacs/info/" "/usr/share/info/")
それぞれの変数の役割ですが、
- Info-default-directory-list
- Info-directory-list
Info-directory-listは、環境変数INFOPATHが定義されていなければ、Info-default-directory-listの値が
セットされます。そうでなければINFOPATHがセットされます。
zqwellの環境では、特にINFOPATHは定義していなかったので、てっきりInfo-default-directory-listの値が
セットされると思っていました。でも実際は上述のとおり、違う値になっています。
もしやと思い、emacs上で
M-! env INFOPATH=/Applications/Emacs.app/Contents/Resources/info:/Applications/Emacs.app/Contents/Resources/extra/info
とたたいてみると、INFOPATHが定義されています。Carbon Emacsだからなのか、emacsではこうなるのかわかりませんが、
勝手にINFOPATHが定義されているためにInfo-default-directory-listが使われない理由となっているようです。
ここまで分かれば、あとはINFOPATHを.bash_profileにでも書いておけば解決です。
# Infoのパス追加 INFOPATH=/usr/local/share/info:/usr/local/info:/usr/local/gnu/info:/usr/local/gnu/lib/info:/usr/local/gnu/lib /emacs/info:/usr/local/emacs/info:/usr/local/lib/info:/usr/local/lib/emacs/info:/usr/share/info:$INFOPATH # Carbon Emacsのinfo パス追加 INFOPATH=/Applications/Emacs.app/Contents/Resources/info:/Applications/Emacs.app/Contents/Resources/extra/inf o:/Applications/Emacs.app/Contents/Resources/share/info:$INFOPATH export INFOPATH
(Info-default-directory-list、Info-directory-listに出てきたパスを全て書いています。)
動作確認としては、
$ source .bash_profile $ /Applications/Emacs.app/Contents/MacOS/Emacs M-x info #emacs上で実行
として、infoの一覧候補が前より追加されていればOKです。全体にINFOPATHを反映させるために一旦、再起動しましょう。
ちなみにInfo-directory-listは、
("/Applications/Emacs.app/Contents/Resources/info" "/Applications/Emacs.app/Contents/Resources/extra/info" "/Applications/Emacs.app/Contents/Resources/share/info" "/usr/share/info" "/Applications/Emacs.app/Contents/Resources/share/info/" "/usr/share/info/")
となっており、きちんと反映されていることが分かります。
まとめ
$INFOPATHはきちんと設定しよう