Emacs/Muleの基礎知識

かなり「普通のWindows アプリケーション」とは様相が違います。で、結構分かりにくかったりしますのでちょっと解説します。


基礎の基礎編


1.Emacs と Mule と Meadow について。

そもそも Emacs(正確には GNU Emacs でしょうか)はリチャード・ストールマンという人により作られたテキストエディタです。あめりか生まれなので当然英語(というか us-ascii)しか使えませんでした。ちなみに、もともとは UNIX ではないシステム用に作られたものを UNIX に移植して、その過程で色々な話があって紆余曲折の末(?) UNIX 系の OS で発展していきました。

で、Emacs 18 の時代に、それで日本語を扱えるように改造した人たちがいて、これを NEmacs といいました。さらに Emacs 18,19 の時代には日本語のみならず多言語を扱えるように改造したものが Mule です(それを Windows に移植したものが Mule for Win32 です)。つまり、この時代には本家 Emacs には多言語機能がなく、たとえば日本語を扱うためには Emacs を改造した Mule を使う必要がありました。ところが、現在では Mule の機能の大部分は本家 Emacs に取りこまれて、今やMule というのは Emacs の多言語機能のことを指すようになりました。ですので、これらのプログラムを指す場合としては素直に Emacs と呼びましょう。で、Meadow は Emacs を Windows に移植したもので、そののベースは Mule が取りこまれた Emacs (Emacs 20)です。(超手抜き説明(^^;)

したがって、私が使っていた Meadow 1.01 (Emacs 20.2/Mule 3.0) は、「Mule 3.0 の機能を含む Emacs20.2 を Windowsに移植した Meadow 1.01」ということになります。


2.どんなものなのか?

まぁ、分類上はテキストエディタに分類するのが普通でしょうねぇ…

とはいえ、「Emacs」っていうのは「Editor with MaCroS」の略だそうです。(つまりマクロ言語を持ったエディタってことですね:もっともマクロを寄せ集めて出来たエディタの意という話もありますが(^^;)

というわけで、Emacs-Lisp なるマクロ言語を持っているのですが、これが相当強力です。どれくらい強力かというと、これを使ってありとあらゆるアプリケーションを作ったりすることが出来るくらい。大はニュース・メイルリーダーやら WWW ブラウザやら日本語入力システムから小は…書ききれん(^^;

というわけで、Emacs はそれ自体一つの OSみたいなものなのです。

さらには、基本的な編集能力にも優れ、インクリメンタルサーチ、語句の補完、テキストの整形その他が自在に出来ます。(もちろん機能を知っていれば、ですが(^^;…多すぎてわからなくなるくらいです。)


3.どんなふうに動いているの?

本体はもちろん C 言語で書かれています。ただ、原則として“本体”というのはあくまでも Lisp のインタープリター + ごく基本的なコマンドであって、実際のほとんどのコマンドの類は Emacs-lisp (つまりマクロ言語!)で書かれています。

これはつまり、「C で書かれたコマンドも Emacs-lisp で書かれたコマンドもまったく同じように扱える」ことを意味します。つまり、自分で書いたコマンドや関数があたかも標準のコマンド、関数のように、さらに他のコマンドを書くときに再利用できたりが自由自在にできるのです。(これは自分でプログラムを書くようになるとどれほど便利なことかわかります。)

さらにオプショナルな変数を用意することもできますので、バリバリにカスタマイズが可能です。ふつうは起動するときに各ホームディレクトリにある「.emacs」という初期化ファイル(変数値やちょっとしたコマンドなどを Elisp で書いておく)を読むようになっていて、そこでその動作(どのライブラリをどういう設定で読みこむか、など)を決めます。

もちろん、このような理屈(インタプリタ形式)ですから最大の弱点は動作が遅い、ということです。(^^;;(ただし、Elisp にはバイトコンパイルという高速化のための仕組もありますが。)(EMACS="Emacs Makes All Computer Slow" の略だという噂まで^^;;)



YOSHIZAWA Masahiro <manbou@ceres.dti.ne.jp>