[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

18. まとめ

この入門書はこれで終わりである。以上であなたは Emacs Lisp でのプログラミ ングについて十分学んだので、値をセットしたり、簡単な `.emacs' ファ イルを自分自身や友人のために書いたり、Emacs にちょっとしたカスタマイズや 拡張を施すことが出来るようになっているはずである。

もっとも、これは一つの段階に過ぎない。望むなら、もっと先に進み、自分自身 で学んでいくことが出来る。

ここからは GNU Emacs のソースや section `The GNU Emacs Lisp Reference Manual' in The GNU Emacs Lisp Reference Manual, などが参考になるだろう。

Emacs Lisp のソースを見ることは一種の探検である。ソースを読んで見慣れな い関数やS式に出逢った場合には、それが何であるかを解読したり調べたりしな ければならない。

まずリファレンスマニュアルを開こう。これは徹底して書かれた、完全な、しか も読みやすい Emacs Lisp の説明書である。これは熟練者のためだけではなく、 あなたが現在知っているような知識しかない人向けにも書かれている。 (Reference Manual は標準的な GNU Emacs の配布に含まれている。この 入門書と同様、これも Texinfo のソースファイルとして配布されている。従っ て、オンラインでも読めるし、タイプセットして印刷された本としても読むこと も出来る。)

また、他の GNU Emacs 附属のオンラインヘルプも読んでみよう。全ての関数に は説明文字列がついているし、find-tag というソースを見つけてくれ るプログラムもある。

例として私がソースを探検する方法を紹介しよう。もう随分と昔のことになるが、 最初に私は、その名前に魅かれて `simple.el' というファイルを見た。往々 にしてそんなものだが、`simple.el' の中の幾つかの関数は複雑だった。 少なくとも、ぱっと見には複雑そうに見えた。例えば一番最初の open-line 関数からして、いかにも複雑という感じだ。

あなたは、この関数を forward-sentence 関数の時のように、ゆっくり と眺めたいかもしれない。 (12.3 forward-sentence.) あるいは、この関数は飛ばして他のもっと簡単そうな split-line 等の 関数を見たいかもしれない。これらの関数を全て読む必要はない。 count-words-in-defun を使うと、split-line 関数は27個の単語 とシンボルを含んでいることが分る。

split-line は、その短さにも関わらず、まだ我々が学んでいない四つの S式を含んでいる。skip-chars-forwardindent-toinsert、そして `?\n' である。

例えば insert 関数を考えてみよう。(これについては復習のセクション である次の所でちょこっと触れられている。) 12.6 復習. Emacs 上で C-h f (describe-function) に続けて insert とタイプすれば、この関数についてより詳しいことを知ることが出来る。これは 関数の説明文字列を表示してくれる関数である。ソース を見る場合は find-tag を使う。これは M-. にバインドされてい る。(もっとも今の場合にはあまり役に立たない。この関数は Lisp ではなく C で書かれたプリミティブだからだ。) 最後に、この関数についてのリファレンス マニュアルの記述は次のようにして探せる。まず Info を起動する。そして i (Info-index) に続けてこの関数の名前をタイプする。もしくは 印刷されたマニュアルのインデックスから insert を探してもよい。

同様に、`?\n' の意味も調べることが出来る。Info-index`?\n' を探してみるとよい。やってみると分るがこれは失敗する。しかし 諦めてはいけない。インデックスで `?' 無しの `\n' を探してみれ ば、マニュアルの中で関係するセクションを見つけることが出来る。 (`?\n' が改行文字を表していることは次の所に出ている。 section `Character Type' in The GNU Emacs Lisp Reference Manual.)

skip-chars-forwardindent-to で何が行われているかは推察 することが出来るだろう。勿論詳しく見ることだって出来る。(ついでだが、 describe-function 関数そのものは `help.el' にある。これは、 長い割には解読しやすい関数の一つである。これの定義を見れば、どうやって標準 の文字コードを使わずに interactive 式をカスタマイズ出来るかとか、 どうやってテンポラリバッファを生成するかということが分る。

他の面白いソースとしては、`paragraphs.el'`loaddefs.el' そ れに `loadup.el' などがあげられる。`paragraphs.el' ファイルに は、長い関数だけでなく短くて簡単に理解出来る関数も含まれている。 `loaddefs.el' ファイルには沢山の標準オートロード式や沢山のキーマッ プが含まれている。`loadup.el' は Emacs の標準部分をロードするファイ ルである。これを見れば、Emacs がどういうふうに作成されるかがよく分る。 (Emacs の作成については次を参照。section `Building Emacs' in The GNU Emacs Lisp Reference Manual.)

前にも言ったように、これまでに Emacs の部品についてはいくらか学習してき た。しかし、これは大切なことなのだが、プログラミングの多くの部分について はほとんど触れることは出来なかった。私は情報のソートについては既に定義さ れた sort 関数を使うこと以外全く触れることが出来なかった。また、 変数やリストを使うこと以外の事柄については、例えば情報を貯めておくにはど うしたらいいかといったことにも触れられなかった。プログラムを書くプログラ ムについても同様だ。これらの話題については、他の別の種類の本で本書とは異 なる学習形態で学ぶべきであろう。

ともかく、以上で GNU Emacs を使って沢山の実際の仕事をする準備が整った。 出発点に辿り着いたわけである。これは始まりの終わりなのだ。


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Matsuda Shigeki on April, 10 2002 using texi2html