Emacs
読み:イーマックス
外語:Emacs: Editor/Editing MACroS
テクストエディター
の一つ。
UNIX
の世界では、
vi
と並んで代表的なエディターの一つである。
目次
概要
歴史
前史
GoslingとStallman
GNU Emacs
特徴
多機能
現状
キー操作
批判もろもろ
種類
関連ソフトウェア
概要
このソフトウェアは比較的歴史が長く、様々な派生物の分岐や融合をしながら、極めて多機能なソフトウェアとなっている。
一応テクストエディターではあるが、もはや単なるエディターの概念を超えた、一つの環境、一つの世界を作り出すフレームワークと化している。
歴史
前史
今のGNU Emacsにはプログラミング言語
Lisp
が搭載されているが、これがLispなのは、GNUのStallmanがLispの本家MIT AI Lab.出身で、彼自身がLispプログラマーだったからである。
さて、StallmanがMIT AI Lab.にいた当時、
vi
というよりはその前の
ed
並のエディターTECOという、PDPで動作するラインエディターがあった。
このTECOをスクリーンエディターに改造し、更にマクロ機能を搭載した。これがやがて、Emacsという名前になる。
Emacsは様々な派生を生み、遂にUNIX用として全面的に書き直された版は、その遥か後にJavaにより名をあげるJames Goslingによって作られたGosling Emacsであった。
Gosling EmacsはCで書かれていた。そして拡張言語として、Mocklispと称するLispもどきの言語が搭載されていた。
GoslingとStallman
当時Goslingは、Gosling Emacsのソースの自由な利用を認めていた。
ゆえに、StallmanたちはGosling Emacsのソースを取り込んだGNU Emacsを作り、またGoslingも、その恩恵を享受しGosling Emacsにフィードバックしていた。今となっては考えにくいことだが、当時のStallmanは、口約束でも充分だと判断していたようである。
なお、当時のGNU Emacsのバージョン番号は1.XXというありふれた形式だったが、1.12まで来たところでStallmanは思った。このままだと、いつになってもバージョン2にならない。そこで、1.12の次は、頭の「1.」を取り、思い切って「13」にしてしまったのである。ゆえにEmacs 1.12の次はEmacs 13であり、バージョン2〜12までは存在しない。
GNU Emacs
1984(昭和59)年、StallmanはGNUプロジェクトを立ち上げた。
そんなある日、Goslingはある企業にGosling Emacsの
権利
を売ってしまったのである。その上、その企業はGosling Emacsのソースの自由な利用を拒否したため、Gosling Emacsのソースを使っていたGNU Emacsはフリーソフトウェアとしては維持できなくなり、作り直しを余儀なくされた。もちろん、その使えなくなったソースには、かつてStallmanが書いてフィードバックされたものも含まれている。
Stallmanはフリーソフトウェア版Emacsを作るべく、新しいGNU Emacsを作りを始めた。ここでまずStallmanは、MocklispなるLispもどきを、本物のLispインタープリターに置き換えてしまった。そして殆ど全てのコードは新しいものに置き換わった。
1985(昭和60)年にリリースされたGNU Emacs 16は、Cで書かれており、Gosling Emacsと同様にUNIXで動作し、更に「フル機能のLisp」が搭載されていた。ゆえに、すぐさまGosling Emacsと置き換わり、GNU EmacsはUNIXの標準Emacsの地位を確立したのである。
そして、この苦い経験を元に1989(平成元)年、GNU GPL Ver.1が発表されたのである。
ソース公開の
義務
や、ソースが誰でも自由に使える、という
GPL
に込められた思想は、このようなことが二度と起こらないようにという、Stallmanの強い思いが込められたものだった。GPLはGNU勃興時からあったのではなく、こうして後から生まれたものである。
特徴
多機能
カスタマイズ性が高く多機能で、UNIXやLinuxユーザーの間では人気も知名度も高い。
エディターにまるまる一つのプログラミング言語(Emacs Lisp)を内蔵し、それを用いてエディター機能が拡張できる。
そのためただのエディターだけでなく、メールリーダやニューズリーダ、
Webブラウザー
などとしても利用可能。実際、Emacs一つで全ての作業を行なう人もいる。
現状
GNU Emacsは今も現役で、改良が続けられている。
Emacsから派生した多国語対応の
Mule
は、GNU Emacs 20以降やXEmacsで機能が取り込まれ、多国語の利用が可能となった。かくして英語以外にも、欧米各国の
言語
、
日本語
、支那語、ロシア語など30以上の言語が扱える。
但し、文字を右から左に書くような言語(アラビア語など)への対応は、Emacs 21でもまだである。
キー操作
独特のキー操作のため、好みが分かれる。
例えば、Emacsを終了するにはCtrl-x Ctrl-c (
Ctrlキー
を押しながらxとcを続けて押す)、といった操作になる。
特に、普段viを使う人は、Emacsを「指がつるエディター」と呼び嫌っている。viとEmacsのどちらが素晴しいかについては昔から「聖戦」が繰り広げられているが、Emacsファンでも、簡単な編集作業ではviを使う人も多い(巨大なEmacsよりも小型のviの方が起動が速いため)。
批判もろもろ
Emacsの操作方法を批判する人は、Emacsのことを「Escape Meta Alt Control Shift」の略だという。
仕様の巨大さを批判する人は、次のように言う。
Eight Megabytes And Constantly Swapping (8Miバイトでいつもスワップしている)
Eventually malloc()s All Computer Storage (最終的にコンピューターの記憶領域をすべてmalloc()する)
Emacs Makes A Computer Slow(Emacsはコンピューターを遅くする、
再帰的頭字語
による表現)
なお、近年ではコンピューターの処理能力(特にメモリーの容量)が大幅に向上したため、仕様の巨大さに対する批判は既に過去の話である。最近では、Emacs並みの巨大ソフトウェアはいくらでも存在する。
この影響か、最近の巨大アプリケーションに慣れた人は「Emacsって軽いですね」などと口走り、年寄りを困惑させている。
種類
全てのEmacsはTECOを起源とする。そのようなEmacsで、UNIX用として現役のものは、GNU Emacsと、派生版のXEmacsの二つである。
Gosling emacs → 滅亡?
GNU Emacs → [現役]
Nemacs
Mule
→GNU EmacsやXEmacsにほぼ統合
Lucid Emacs
XEmacs
→ [現役]
このような一連を総じる語として、Emacsの複数形「
Emacsen
」なる語が作られた。
このほか、Microsoft Windows版に、次のようなソフトウェアがある。
Meadow
xyzzy
関連ソフトウェア
Mew
(Emacs/XEmacs/Mule上で動作するMUA/ネットニューズリーダ)
gnus
(EmacsやMule上で動くMUA/ネットニューズリーダ)
SKK
(
日本語入力システム
)
Wnn
(日本語入力システム)
quail
(マルチスクリプト文字入力システム)
再検索