Emacs24を入れてみました。

なぜかふとEmacsを24にしてみようと思い立ったので入れてみました。

OS X用だとSourceForgeで.dmgが配布されているのでそこからダウンロードしてきました。
普通に古いのと置き換えました。

起動するとinit.el内でエラーがいくつか出ていたのでとりあえず困らなそうなやつは全部コメントアウトしました。

で、問題が一つ。
どうもflyspellがデフォルトで機能しているらしく

Error enabling Flyspell mode:
(Searching for program No such file or directory ispell)

というメッセージが。

ispellはインストールしてないのでインストールします。

portsとかbrewとかで入れられるらしいんですが面倒くさいのでソースから入れました。(僕のMacにはportを入れてない。)

$ tar -xvzf ispell-3.3.02.tar.gz
$ cd ispell-3.3.02
$ cp local.h.macos local.h
$ make all

そしたらエラーが出た。

correct.c:248: error: conflicting types for ‘getline’
/usr/include/stdio.h:449: error: previous declaration of ‘getline’ was here
make: *** [correct.o] Error 1

コンフリクトしてるらしい。
とりあえず適当に置換します。

$ chmod 644 correct.c
$ vim correct.c
:%s/getline/_getline/g
保存して閉じる
$ make all
今度は通ったはずなので
$ sudo make install

無事インストール出来ました。
再びEmacs起動してみます。

やっぱりispellが無いとか言われる・・・。
まぁインストールは出来てるわけだからパスの問題だろうと言うことで

$ which ispell
/usr/local/bin/ispell

init.elに追記

(setq ispell-program-name "/usr/local/bin/ispell")

もっかい起動して適当なファイルを開いてみます。

バッファには
Starting new Ispell process [default] ...
と出ているので大丈夫そうです。

例えばですがPHP
$a = 'enviroment';
とか書いちゃうとアンダーライン付いてスペルミスしていることを教えてくれます。