【コラム】
OS X ハッキング!
331 Cocoa対応で大きく変わった「Emacs 23.1」(1)
2009/08/05
Time Capsuleがアップデート、2TBモデルが追加されました。価格は従来の1TBモデルと同じ50,800円、新しい1TBモデルは30,800円ということで、事実上の値下げ。こまめにシステムのバックアップを行うべく、導入を検討しようかと思います。
さて、今回は「Emacs 23.1」について。言わずと知れた多機能テキストエディタの最新版、時代の要請に応じた最新フィーチャーが盛り込まれている。ここでは、その全体像から見てみよう。
Emacs 23.1の新機能
Emacs 23.1は、2007年6月にリリースされたv22.1以来約14カ月ぶりとなる、安定版としてのメジャーバージョンアップだ。全プラットフォーム共通の変更点もあれば、OS X限定の新機能もあり、OS XにおけるEmacsユーザにとっては看過できないリリースとなっている。
まずは、全プラットフォーム共通の変更点から。内部のエンコーディング形式が従来のemacs-muleから、UTF-8互換の「utf-8-emacs」に変更された。Emacs LispファイルもUTF-8が適用されるため、v22以前に生成されたelcファイルはバイトコンパイルし直したほうがいい (読み込み可能だが時間がかかる)。
特筆すべきは「DocViewモード」 (doc-view.el) の追加だろう。PDF / DVI / PostScriptに対応、Diredなどからファイルを開く操作を行うとモードが開始され、ビューアとして機能する。筆者が数十のPDFで試した限りでは開けないものも多く、互換性は完璧とはいえない状況だが、"Emacsの環境で生きる"ユーザにとってはありがたい新機能といえるだろう。なお、メジャーモードではRuby (ruby-mode.el) も標準装備されている。
フォントに関する実装も変更された。バックエンドにはfreetypeとfontconfigがサポートされ、フォント名にはfontconfigとGTKの2種類が利用できるようになった。Xftによるアンチエイリアス処理も可能となり、表示品質が向上している。
ほかにも、GnuPGのフロントエンドとして機能するEasyPGの標準装備や、行番号の表示をON/OFFする「linum.el」などパッケージの追加が行われている。
OS X向けの新機能だが、Cocoa APIを利用する通称「Cocoa Emacs」のコードが採用されたことが挙げられる。ソースコード内のnextstep/READMEを読めばわかるように、1990年頃から存在するソースコードツリーの復活であり、2005年頃から再びメンテナンスされ始めて現在に至る。CarbonからCocoaへの移行をAppleが推奨していることもあり、Emacsにおいてもその流れはいわば必定。Snow Leopard目前のいま、Cocoa Emacsと慣れ親しんでおく必要があるのだ。
後述するが、よくメンテナンスされていたCarbon APIベースのコード (Carbon Emacs) に比べ、Cocoa Emacsは若干安定性に欠ける。フォント周りの実装もCarbon Emacsとは異なるため、等幅フォントの設定が難しい (筆者も検証中) など、これまで蓄積したノウハウを生かせない部分がある。Cocoaへの移行は時代の流れとして受け入れざるをえないが、実用性を考慮すると、もうしばらくはCarbonにとどまる必要がありそうだ。
Emacs 23.1の入手とビルド
Emacs 23.1は、本稿執筆時点ではソースコードのみ配布されている。OS Xで利用する場合、開発環境 (Xcode Tools) が必須となるので、事前にADC経由などで入手しておくこと。ソースコードは、負荷集中を避けるためGNU本家ではなく、日本のRing Server (HTTPまたはFTP) 経由でダウンロードしてほしい。
準備が完了したらいざビルド……その前に、日本の有志ユーザが開発したインライン入力パッチの適用を検討しよう。このパッチを当ててからビルドすれば、ことえりやATOKなどのIMEを利用するとき、カーソル位置に変換候補を表示しつつ入力できるようになる。
configure実行時には、「--with-ns」と「--without-x」の2つのオプションを指定すること。前者ではOS Xに適したアプリケーション形式を (バンドル内にリソースを収録) 、後者では描画にX Window Systemを使用しない (Aquaのみサポート) ことを指示し、その結果「Emacs.app」がnextstepサブディレクトリに生成されることになる。
なお、このインライン入力パッチでは、Snow Leopardで削除が見込まれるAPIが使用されている。9月にリリース予定のSnow Leopardでは、このパッチは利用できない可能性が高いことをお伝えしておく。ここで紙幅が尽きたため、「.emacs.el」の設定など続きは次回。
$ tar xzf emacs-23.1.tar.gz
$ tar xzf inline_patch-20090617.tar.gz
$ cd emacs-23.1
$ patch -p0 < ../inline_patch-20090617/emacs-inline.patch
$ ./configure --with-ns --without-x
$ make bootstrap
$ make install
関連サイト
ヘッドライン
- リンクスインターナショナル、キャリーケース&スタンド付きiPadケース発売[07:00 7/31]アップル
- マウス、モバイル最高峰"GeForce GTX 480M 2GB搭載"の17.3型ノート[19:47 7/30]マウスコンピューター
- "Revolutionary"なMac OS X新機能って何? - 米Appleが技術者を募集中[19:23 7/30]アップル
- CFD販売、USB 3.0接続のキャプチャユニット「Intensity Shuttle」出荷開始[19:12 7/30]周辺機器
- MSI、秋葉原で8月11日に第12回「MSIパソコン組み立て教室」[18:40 7/30]自作
- 【コラム】セカンド・オピニオン 第342回 USB 3.0の研究(69)[16:33 7/30]自作
- 【レビュー】ライティングだけじゃない!超マルチメディア統合ソフト「Nero Multimedia Suite 10」[16:33 7/30]ソフト
- 楽天、売れ筋商品を紹介するiPadアプリ「楽天ランキング」の無料配信を開始[16:03 7/30]アップル
- ブライトンネット、縦置きでも横置きでも使えるiPad用スタンド[16:01 7/30]アップル
- 【レポート】小さな自作PCユーザーがここに誕生! MSIが「子どもパソコン組み立て教室」開催[15:33 7/30]自作










