2012-01-14

「やさしい Emacs-Lisp 講座」の改訂版が出ていた

Emacs-Lisp の解説書として (個人的には) 非常に好きな「やさしい Emacs-Lisp 講座」。1999 年に発売されたものだけれども、2011 年 6 月に改訂版が出ていた。価格は 2,940 円。

改訂版 やさしい Emacs-Lisp 講座
広瀬 雄二

4877832718
カットシステム 2011-06
Amazonで詳しく見る
by G-Tools

Emacs-Lisp は、エディター「Emacs」のマクロ言語。Lisp と呼ばれる古い言語からの派生で、このマクロ機能を使うことで Emacs のカスタマイズ及び拡張が可能になる。

先のエントリーでデモ動画を紹介した YaTeX も、Emacs-Lisp を使って作られたマクロの一つ。

Emacs の面白いところは、Emacs-Lisp のインタープリターが土台に在って、その上にエディターが構成されていること。他のエディターは機能の大部分を C や Java で書いておいて、マクロ機能を「付加機能」として付けている。つまり、Emacs は他のエディターとは発想が逆。エディターから枝葉を除くと、他のエディターは「エディター」が残るけれども、Emacs の場合は Emacs-Lisp のインタープリターが残る。これは、Emacs が柔軟にカスタマイズできることに繋がる。

閑話休題

「やさしい Emacs-Lisp 講座」は、(ぼくは旧版しか持っていないけれど、新版との違いは一章分しかないらしいので大きく間違っていないはず) Emacs で「メジャー・モード」を作ることを目標にステップ・アップを重ねてゆく。Emacs は編集テキストに依って「メジャー・モード」を持っている。例えば C 言語モード、HTML モード、Ruby モードなどなど。こういったメジャー・モードは、その編集テキストに特化した機能を提供する。C 言語モードではエラー行ジャンプを、HTML モードでは閉じタグの自動入力を、といった具合。実際、自分が必要になるメジャー・モードは誰かが作っているので、自作する必要はほとんどない。けれども、メジャー・モードを作る過程で、Emacs を操作する基本コマンドを身に付けることができる。

また、Emacs にはマイナー・モードと呼ばれるものもある。これは、メジャー・モードを補完するためのもの。一般にメジャー・モードは一つのテキストに対して一つしか割り振れない。マイナー・モードは複数の機能を割り当てることができる。例えば C 言語のソース・ファイルを開くと、ぼくの場合、Font-Lock (ソースコードに色を付ける)・Hide-Ifdef (#if 文を隠す) といったマイナー・モードが起動する。メジャー・モードに付加させる形で提供できるので、使い勝手が良い。

このマイナー・モード。メジャー・モードを作るよりも難かしい。その上、メジャー・モードの基本を理解しないと作れない。実はかなりハイレベルな代物。ところが、少し Emacs に慣れてくるとこのマイナー・モードを作りたくなってしまう。そんなわけで、マイナー・モードの前の土台として、メジャー・モードを作る本書はとても役に立つ。

あとがき

ぼくはこの本と「An Introduction to Prgramming in Emacs Lisp」(Emacs のヘルプに付属) で Emacs Lisp の基礎を勉強した。Emacs は自分でいじってこそ楽しくなる。Emacs を始めたら、是非 Emacs Lisp にも手を染めて欲しい。

No comments:

Post a Comment