Cannot open load file: subst-ksc と出るエラー対策?

根本的な問題解決はこっちかも→MacターミナルのEmacsが古かった根本的な原因 - プログラムとかののblog

===============================

MacEmacsのテストをやってみてたらなんかエラーが出てきた。

どうもパスを設定できていなかったからうまくいかなかったみたい。

;; @see http://d.hatena.ne.jp/yuheiomori0718/20111230/1325246364
;; @see http://sakito.jp/emacs/emacsshell.html#path
(let ((dir "/Applications/Emacs.app/Contents/MacOS/Emacs"))
  (when dir)
    (setenv "PATH" (concat dir ":" (getenv "PATH")))
    (setq exec-path (append (append (list dir) exec-path))))

まぁ結局はMacのバージョン22.1.1という古いバージョンでやってたのがいけなかったみたい。/usr/bin/emacs のバージョンが古いのが悪い。

なので新しいバージョンでやる場合は
/Applications/Emacs.app/Contents/MacOS/Emacs
で実行する。そうしないとエラーがいっぱい出てきそう。

Cannot open load file: cl-lib
Symbol's function definition is void: declare-function
最新のERTだとこういうエラーが出た。cl-libは22.1.1にないし、なぜかdeclare-functionも22.1.1にないらしい。

実行する場合はこんな感じ

$ /Applications/Emacs.app/Contents/MacOS/Emacs -Q -L . --batch test/run-test.el

こんな感じでコマンドを実行するとバッチ実行ができる。

ちゃんとしたEmacsでのテストの記事はまだ書けない。Wikiに情報が溜まったら書こうと思う。

オプション 効果
-L ディレクトリ指定のオプション
-Q ~/.emacsや、~/.emacs.d/init.elを読み込まないようにするオプション