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) も標準装備されている。

PDFやPostScriptを閲覧できる「DocViewモード」

フォントに関する実装も変更された。バックエンドにはfreetypeとfontconfigがサポートされ、フォント名にはfontconfigとGTKの2種類が利用できるようになった。Xftによるアンチエイリアス処理も可能となり、表示品質が向上している。

ほかにも、GnuPGのフロントエンドとして機能するEasyPGの標準装備や、行番号の表示をON/OFFする「linum.el」などパッケージの追加が行われている。

Emacs 23.1がリリース、Mac OS X向けのコードはCarbonからCocoaへ移行した

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