概要: Emacs 23.3a を Homebrew を使ってインストール
こんにちま!
最近技術系記事をさっぱり書いてなかったにゃるらこと岡村直樹(23)です。 皆さん開発してますか? 僕は最近個人事業主になるべく、色々と作ってます。
さて、プログラミングをする上で重要な要素なのが編集環境、 ぶっちゃけていうとエディタな訳ですが、僕は Linux Mint やらを使いだした頃から、 Emacs を使ってきました。
で、8 月に Macbook Air 13" mid 2011 を買ってからも Emacs を使ってきたんですが、 今まで Mac OS X 上で使ってきた Emacs は、コンパイル済みのもので、 あんまり気にせずに使ってきたんですが、せっかく Homebrew も使ってることだし、 Homebrew を使って Emacs をインスコしよう! ということで、 今日稲刈りの合間を縫って試行錯誤してました。
ということで今日はその辺りのことを書きたいと思います。
2011-09-08 現在、公式の Formula ではコンパイルできない
そのうち直るとは思うんですが、2011-09-08 現在、 Homebrew の公式 Formula を使ったコンパイルは、OSX Lion 上だとうまく行きません。
なんで色々と修正する必要があり、色々と面倒なんですが、 今現在では ColinHebit という方が、 修正済みの Formula を公開していたりします。
- <https://raw.github.com/ColinHebert/homebrew/87f2d1e5eaadb85cbd633bdaad72d84794c4f30b/Library/Formula/emacs.rb https://raw.github.com/ColinHebert/homebrew/87f2d1e5eaadb85cbd633bdaad72d84794c4f30b/Library/Formula/emacs.rb>
で、英語圏のユーザーさんならこれを使えば問題ナッシング! なんですが、 この Formula では、日本語入力モードの時に、Shift + 記号を入力した際に、 入力が半角になる問題を修正するための typester さん謹製パッチが取り込まれてないため、 それを修正する必要があります。
で、僕の場合、まず Emacs 用 Formula であるemacs.rb
を一旦ダウンロードしてきて、
if ARGV.include? "--cocoa"
# Fullscreen patch, works against 23.3 and HEAD.
p << "https://raw.github.com/gist/1012927"
end
のあたりに、
p << "https://github.com/downloads/typester/emacs/fix-shiftmodifier-with-ime.patch"
を追加しました。
で、あとは端末から、
$ sudo brew install /path/to/emacs.rb --cocoa --srgb
すれば、Emacs がコンパイルできます。
で、コンパイルが終わると、/usr/local/Cellar/emacs/23.3a/
にEmacs.app
が出来上がるので、 これを/Applications
にコピーしてきます。
これで、Emacs のインスコは終わりです。
emacs -nw
でクラッシュする場合の修正
これは僕の環境での話なんですが、~/.emacs
に GUI 環境固有の設定を書いていたせいで、 emacs -nw
がクラッシュする、という状況に遭遇しました。
実を言うと最初これに気がつかなくて、Emacs が cli で起動しない! 何故だ! とかなってました。
で、これは一応、~/.emacs
に、
(defvar run-cocoa
(equal window-system 'ns))
とか書いて、GUI 固有の設定をする際に、
(if run-cocoa
;; GUI時の設定
)
という感じにして直りました。
この辺り、typester さんの公開している Emacs の設定をパクリました。 typester さんありがとうございます。
という感じです
という感じで以上が Cocoa Emacs を Homebrew でコンパイルしてインスコする話でした。
最初色々と試行錯誤してて、設定が原因で Emacs がクラッシュ!とかなってたものの、 稲刈り終わってから試してたらかなりすんなり行って、ちょっと拍子抜けした感じです。 快適になったんでよかったですけどね。
まあ Cocoa Emacs をコンパイルする話は他の方の Blog にも書いてあったりしますが、 僕も一応まとめてみた感じです。まあ一回でも書くと忘れないからね。
ざっと今日の作業はこんな感じでしたが、まあ何かの役に立てば幸いです。
ということで、以上で終わります。
#FIXME