環境変数の設定に関して。
環境変数を参照するプログラムはたいていターミナルから使う(シェルの中で起動する)。シェルの設定がそれなりにしてあれば問題にはならない。一方、Carbon Emacs は Finder から起動することになるので、シェルの設定の影響を受けない。つまり、Carbon Emacs が参照する環境変数は別の方法で設定しなければならない。
ほとんどの場合 Carbon Emacs のデフォルトで問題ないが、困ることもある。具体的には INFOPATH
。ユーザの方でこれを設定をしないと、Carbon Emacs 自身で設定してしまう(*scratch* バッファで (getenv "INFOPATH")
を評価するとわかる)。.emacs
では上書きできないっぽい(環境変数が優先される)。そうなると、MacPorts なんかでインストールしたプログラムの Info が(Carbon Eamcsから)読めない。ま、近頃では Emacs の中から Info を読むこと自体、まれなんだがね。
ユーザのセッションごとの環境変数を設定する方法が、今回の表題に挙げた ~/.MacOSX/environment.plist
に記述するというものだ。拡張子が主張するように Property List Editor で作るファイルだ。もっとも、実体は XML ファイルなのでテキストエディタで書くこともできる。以下がサンプル(長い行はバックスラッシュで折り返してある)。INFOPATH
という環境変数を設定している。
(environment.plist)
1: <?xml version="1.0" encoding="UTF-8"?>
2: <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" \
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3: <plist version="1.0">
4: <dict>
5: <key>INFOPATH</key>
6: <string>/usr/local/info:/opt/local/share/info:\
/Applications/Emacs.app/Contents/Resources/extra/info:\
/Applications/Emacs.app/Contents/Resources/info:\
/usr/share/info</string>
7: </dict>
8: </plist>
記述に関して注意しなければならないことがある。このファイルはシェルが読むわけではないので、シェル特有の表記法は使えないってこと。たとえば、"~"だとか、シェル変数、環境変数の展開など。つまり、~/info
、あるいは ${HOME}/info
のようには書けない。ちょっと不便。
ちなみに、この Property List Editor は開発ツールに付属のものだ。開発ツールがインストールされていないと使えないアプリってこと。「それで良いのか、Apple!」と思わないでもないが、こんなことをするのは、unix 由来のプログラムを使うとき、それもターミナル(シェル)と無関係に使うときだけで、そういうユーザはもれなく開発ツールをインストールしているだろうから問題にはならないか。
関連リンク
- Runtime Configuration Guide: Environment Variables(Mac OS X Reference Library)
0 件のコメント:
コメントを投稿