Emacs

読み:イーマックス
外語:Emacs: Editor/Editing MACroS 英語
品詞:固有名詞

テクストエディターの一つ。UNIXの世界では、viと並んで代表的なエディターの一つである。

目次

このソフトウェアは比較的歴史が長く、様々な派生物の分岐や融合をしながら、極めて多機能なソフトウェアとなっている。

一応テクストエディターではあるが、もはや単なるエディターの概念を超えた、一つの環境、一つの世界を作り出すフレームワークと化している。

前史

今の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

このような一連を総じる語として、Emacsの複数形「Emacsen」なる語が作られた。

このほか、Microsoft Windows版に、次のようなソフトウェアがある。

  • Mew (Emacs/XEmacs/Mule上で動作するMUA/ネットニューズリーダ)
  • gnus (EmacsやMule上で動くMUA/ネットニューズリーダ)
  • SKK (日本語入力システム)
  • Wnn (日本語入力システム)
  • quail (マルチスクリプト文字入力システム)

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club