Emacs (original) (raw)

出典: フリー百科事典『ウィキペディア(Wikipedia)』

曖昧さ回避 この項目では、Emacsエディタ全般について説明しています。GNUプロジェクトによるEmacsについては「GNU Emacs」をご覧ください。

Emacs

GNU Emacsにおける複数のDiredバッファの編集
開発元 デイヴィッド・A・ムーン英語版)、ガイ・スティール・ジュニア
初版 1976年 (48年前) (1976)[1][2]
プログラミング言語 LISP, C
対応OS TECOクロスプラットフォームUnix系
種別 テキストエディタ
テンプレートを表示

Emacs(イーマックス、)は、その拡張性を特徴としたテキストエディタのファミリーである[3]。Emacsの中で最も広く使われている派生物であるGNU Emacs[4]の作者、リチャード・ストールマンは、自身の声明[5][6]において「たくさん模倣されたオリジナルのEMACSエディタの発明者 (inventor of the original much-imitated EMACS editor)」を自称し、GNU EmacsのマニュアルではEmacsを「the extensible, customizable, self-documenting, real-time display editor」(拡張およびカスタマイズが可能で、自己文書化を行い、リアルタイム表示を行うエディタ)であると説明している[7]。最初のEmacs開発が1970年代中盤に開始されてから、その直系の子孫であるGNU Emacsが製作され、その開発が2023年現在[update]も続いている。

Emacsはユーザインタフェースと10,000を超える組み込みコマンドを持ち、ユーザーは作業自動化のためにこれらのコマンドをマクロと組み合わせることができる。さらに深い拡張性を提供するLISPプログラミング言語の方言であるEmacs Lisp (ELispまたElispとも) はEmacs実装の主な特徴であり、Emacs Lispでユーザーや開発者はEmacs用の新しいコマンドやアプリケーションを書くことができる。Emacsの拡張機能として電子メールファイルアウトライン、およびRSSフィードが書かれており[8]、それ以外にもELIZAポンライフゲームヘビゲーム、およびテトリスのクローンもある[9]。ユーザーの中にはEmacs内部からテキスト編集だけでなくほとんど全ての作業を行うことができることに気づいた者もいる[10]

原典であるEMACSは1972年にCarl Mikkelson、デイヴィッド・A・ムーン英語版)、およびガイ・L・スティール・ジュニアらによりTECOエディタ用の_Editor MACroS_のセットとして書かれたものであり[2][11][12][13][注 1]、TECOマクロエディタの概念に触発されている[14]

最も有名かつ最も移植されたEmacsは、ストールマンによってGNUプロジェクトのために作成されたGNU Emacsである[15]XEmacsは1991年にGNU Emacsからフォークされた派生物である。GNU EmacsとXEmacsは類似のLISP方言を使い、互いに互換性のある部分が大半である。

Emacsはvi (Vim) と並びUNIX文化における伝統的なエディタ戦争の主要な当事者である。Emacsは開発中であるオープンソースプロジェクトの中で最古のものである[16]

GNU EmacsにおけるCソースコードの編集

GNU EmacsからC++コードを編集してコンパイル

Emacsのインタフェースはシンボリックススペースカデットキーボードの設計の影響を受けた[17]

Emacsは1970年代のMIT人工知能研究所(MIT AI研)で産声をあげた。 AI研で使われていたPDP-6PDP-10オペレーティングシステムIncompatible Timesharing System (ITS) であり、そのデフォルトエディタはTECOというラインエディタであった。TECOは現在の一般的なテキストエディタとは違い、追加・編集・表示用にそれぞれ別々のモードが存在していた。そのため文字を入力しても即座に反映されるわけではなく、代わりにTECOコマンド言語の i 文字を入力して入力モードに切り替えてから必要な文字を入力し、最後に ESC 文字を入力してエディタをコマンドモードに再度切り替える必要があり(上書きが可能なため、同様のテクニックが使われた)、しかも入力モードで編集中の文字は画面に表示されなかった。なお、この振る舞いは現在も使われているedviと同じである。

リチャード・ストールマンは、1972年と1974年にスタンフォード人工知能研究所を訪れ、Fred Wrightにより書かれたその研究所の「E」エディタを目にした[18]。Eの振る舞いは今のエディタの大半で使われている直感的なWYSIWYGであり、ストールマンはその機能に触発されてMITに戻った。 AI研ハッカーの一人であるCarl Mikkelsenは、利用者がキー操作するたびに画面表示を更新するControl-Rという表示・編集を組み合わせたモードをTECOに追加していた。ストールマンは、この更新が効率的に動くよう書き直し、任意のキー操作でTECOプログラムが動くように利用者が再定義できるマクロ機能をTECOの表示・編集モードに追加した[13]

EにはTECOに不足していたランダムアクセス編集機能が搭載されていた。TECOはPDP-1紙テープを編集するために設計されたページシーケンシャルエディタであるため、一度に1つの紙テープしか編集することしかできず、さらに紙テープのファイルに存在するページの順に編集しなければならなかった。Eはディスク上のページランダムアクセスを可能にするため、ファイルを構造化するというアプローチを採用していたが、ストールマンはTECOを修正してさらに巨大なバッファを効率的に処理できるようにするというアプローチを採用し、ファイル全体を単一バッファとして読み込み、編集し、書き込めるようにファイル管理方法を変更した。現在ではほとんどのエディタがこのアプローチを用いている。

新しいバージョンのTECOはまたたく間にAI研で評判となり、マクロを意味する「MAC」や「MACS」が語尾に付いた名前のカスタム・マクロの巨大なコレクションが溜まった。さらにその2年後、どんどんばらばらになっていくキーボード・コマンド・セットを1つに統合するプロジェクトをガイ・スティールが引き受けた[19]。ストールマンはスティールとハックしたある夜の後、新しいマクロ・セットの文書化や拡張の機能を含む実装を完成させた[13]。こうしてできあがったシステムは_Editing MACroS_や_E with MACroS_を意味するEMACSと呼ばれることになる。ストールマンによると、Emacsとしたのは「当時ITSでが略称に使われていなかったから」である[20]。作り話であるHacker koanではケンブリッジの人気アイスクリーム店「Emack & Bolio's英語版)」にちなんで名付けられたとしている[21]。操作可能な最初のEMACSシステムは1976年後半に姿を現した[22]

ストールマンはEMACSの過度のカスタム化や事実上の分裂の危険に気づいたため、ある使用上の条件をつけた[_要出典_]。彼は後に次のような文章を残している[22]:

「EMACSは、共同参加を基として頒布される。つまり改良点は全て、組み入れて頒布するために、私のところへ戻ってこなければならない」

原典であるEmacsはTECO同様にPDP-10上だけで動作した。Emacsの振る舞いはTECOのそれとは大きく異なっていてTECOとは独立した別のエディタとみなせるようになり、さらにEmacsは急激にITS上の標準編集プログラムとなった。Mike McMahon英語版)はEmacsをITSからTENEXTOPS-20オペレーティングシステムに移植した。 初期のEmacsへの貢献者には、このほかKent Pitman英語版)、Earl Killian、Eugene Ciccarelliらがいる。1979年までに、EmacsはMIT人工知能研究所やMITコンピュータ科学研究所で使われる主要エディタとなった[23]

その後、他のコンピュータシステム用に多くのEmacs風エディタが書かれた。これらにはMichael McMahonとDaniel Weinreb英語版)らがLISPマシン用に書いた EINE英語版) (Eine Is Not Emacs) とZWEI (_Zwei Was Eine Initally_)[24](なお、ZWEIはドイツ語で「2」の意味でもある。EINEが「1つの」(女性形)にあたるためのもじり。ストールマンの呼ぶEINEは「アイン」のように聞こえるが、ドイツ語の発音は「アイネ」に近い)、そしてOwen Theodore Andersonによって書かれたSINE (Sine Is Not Emacs) がある。WeinrebのEINEはLISPで書かれた最初のEmacsである。1978年にはハネウェルケンブリッジ情報システム研究所でBernard Greenberg英語版)によりMultics Emacs英語版)がほぼ全てをMultics MACLISPを用いて書かれ、その後Richard Soley英語版)とBarry Margolinによりメンテナンスされた。GNU Emacsを含むEmacsのバージョンの多くは後に拡張言語としてLISPを採用することになる。UNIXで動作する最初のEmacs風エディタは、後にNeWSJavaの開発で知られることになるジェームス・ゴスリングが1981年に書いたGosling Emacsであった。 これはCで書かれ、Mocklisp英語版)というLISP風構文の拡張言語を使っていた。Mocklispにはシンボルもリストもなく[25]、構文がLISP風なだけで本当のLISPではない。Gosling Emacsは、現在広く使われているフリーソフトウェアGNU EmacsMeadowとは異なりプロプライエタリソフトウェアであった[26]

テキスト端末で動くGNU Emacs

1984年、リチャード・ストールマンはプロプライエタリソフトウェアであったGosling Emacsのフリーソフトウェアによる代替物を作るべく、GNU Emacsに取り組み始めた。当初GNU EmacsはGosling Emacsをベースとしていたが、ストールマンはMocklispインタプリタを本物のLISPインタプリタに入れ替えてしまい、ほぼすべてのコードが入れ替わった。GNU Emacsは揺籃期のGNUプロジェクトがリリースした最初のプログラムとなった。GNU EmacsはCで書かれており、Cで実装されたEmacs Lisp (ELisp) を拡張言語として提供する。最初に広く頒布されたGNU Emacsのバージョンは1985年に登場した15.34だった。初期のGNU Emacsのバージョン番号は_1.x.x_のように最初の桁にCコアのバージョンを表すよう採番されていたが、バージョン1.12が出た後にメジャー番号が変わりそうにないため先頭の1をなくすことにしたので、バージョン番号は_1_から_13_にスキップした[27]。最初の公開リリースであるバージョン13は1985年3月に完成した。2014年9月にGNU emacs-develメーリングリストで、GNU Emacsにラピッドリリース戦略を採用し、将来的にバージョン番号をより迅速に増やしていくことが発表された[28]

GNU Emacsは後にUNIXへ移植され、Gosling Emacsよりも多くの機能を提供した。それらの機能の中で代表的な物は、拡張言語であるフル機能を持ったLISPである。それから瞬く間にGNU EmacsはGosling Emacsに取って代わりUNIXのEmacsエディタのデファクトスタンダードとなった。Markus Hess英語版)は彼の1986 cracking spreeで、GNU Emacs電子メールサブシステムのセキュリティ上の弱点を悪用し、UNIXコンピュータ上でスーパーユーザーアクセス権を取得した[29]

Emacsは、チューリング完全な言語を小さい中央コアの頂点で起動する階層型アーキテクチャを使用する。ストックされたEmacs頒布の約3/4(24.4現在では1611kLOCのうち1266)がEmacs Lisp拡張言語で書かれており[1]、一度Cによる中核部分(Emacs Lispインタプリタを実装し、24.4現在では247kLOCを占める)を移植すればEmacs Lispコードに実装された機能のセットは存在することになるので、Emacsを新しいプラットフォームに移植することはネイティブコードのみから成る同等のプロジェクトを移植するよりはるかに簡単である。Emacsの移植は理論上中核部のみを新しいプラットフォームへ移植すればよい。このため一度中核部が移植されれば、Cよりも高級な言語で実装された部分は最小限度の作業で済む。

GNU Emacsの開発は_伽藍とバザール_で_伽藍_式開発の例にあげられていたように、1999年まで比較的閉鎖的だったが、それ以降は公開された開発メーリングリストと匿名CVSアクセスを採用するようになった。GNU Emacsの開発は2008年までは単一のCVSトランクで行われていたが2009年末より分散型バージョン管理システムであるBazaarに切り替えられ、さらに2014年11月11日にGitへと移行した[30]

ストールマンは長らくGNU Emacsの主要な管理者を務めていたが、時代と共にその役目から退いていった。2008年から2015年まで管理はStephan MonnierとChong Yidongに引き継がれている[31]。2015年にMITにおけるストールマンとの会合の後、John Wiegleyがメンテナとして指名された[32]。2014年の時点で、GNU Emacsはその歴史を通じて579人によりコミットされてきた[33]

GNU Emacs のバージョンは 1985年のうちに 17 まであがったが、それ以降は更新は落ち着いた速度で行われている。

GNU/Linux上のXEmacs 21.5

1991年初頭、GNU Emacs 19の初期α版をベースとしてJamie Zawinski英語版)とLucid英語版)社の人たちによりLucid Emacsが開発された。コードベースはすぐに2つに分割され、開発チームは単一プログラムとして併合しようとすることをあきらめた[34] 。これはフォークしたフリーソフトウェアのうち初期の最も有名な例の1つである。Lucid EmacsはXEmacsと名前を変え、Emacsの中でGNU Emacsに次いで2番目に有名な派生となった[_要出典_]。XEmacsの開発は2009年1月に最新の安定版であるバージョン21.4.22がリリースされてから遅くなっていき、その一方でGNU Emacsは以前はXEmacsにしかなかった機能の多くを実装していった。このため一部のユーザーはXEmacsの死を宣言するようになった[35]

XEmacsほど有名ではないGNU Emacsのフォークには以下のものがある:

Rubyのソースコードを編集中の、OpenBSD 5.3のタイニーEmacs風エディタ_mg英語版)_

LISPマシン用のEmacsであるZmacs英語版

過去においては、各Emacsプロジェクトの目的は肥大化したEmacsの小規模なバージョン作成であった。GNU Emacsは当初、当時のハイエンドであった32ビットフラットアドレス空間と少なくとも1MiBのRAMを搭載するコンピュータを想定していたが、1980年代ではそのようなコンピュータはハイエンドなワークステーションミニコンピュータであったので、一般的なパーソナルコンピュータのハードウェアで動作するようより小規模に再実装する必要があった。近年では小規模なEmacsクローンはソフトウェアインストールディスクに収まるよう設計されている[_要出典_]。

小規模バージョン作成以外のプロジェクトの目的は、Emacs Lisp以外のLISP方言やLISPとは全く異なるプログラミング言語によるEmacsの実装である。Emacsクローンを以下に示す。ただし現在その全てが管理されているわけではない:

Emacsは主にテキストエディタでありテキスト要素を操作するよう設計されているが、LaTeXGhostscriptウェブブラウザといった外部のプログラムと通信することで、ワードプロセッサのように文書を整形したり印刷することができる。Emacsは、そして段落といった異なるセマンティック要素や、関数のようなソースコードの構成要素を処理したり様々な色を付けるためのコマンドを提供する。さらにEmacsは編集コマンドのユーザー定義バッチ用に_キーボードマクロ_も提供する。

GNU Emacsは_リアルタイム表示_エディタであるので、編集する度にその編集がオンスクリーンで表示される。これは現在のテキストエディタの標準的振る舞いであるが、EMACSは初期の段階でこの機能を実装していたため、viのように既存のテキストに新しい編集を挿入するために個別のコマンドを実行する必要がなかった。

viが編集のための基本的な機能のみを搭載していたのに対し、Emacsはインクリメンタルサーチ・無制限のアンドゥ・ヤンク(ペースト)用のスタック・複数のバッファ・バッファ上でシェルを実行・補完・言語ごとのモードなど、エディタとして考えられる限りの機能を詰め込んでいる。VimではEmacsと同等のことができるようになっているが、バッファの使い方はEmacsより控えめである。

文書への文字列挿入などの基本的な編集操作を含むEmacsの機能はほとんど全て、LISPの方言で書かれた関数で行える。GNU Emacsで使われるLISP方言はEmacs Lispとして知られている。Emacs Lisp層はCで書かれた基本的なサービスとプラットフォームを抽象化した概念の、安定したコアの頂点に位置している。LISP環境の変数関数は、Emacsのリコンパイルや再起動をせずとも一時的に修正できる。

Emacsは追加属性を持つテキストを含んだ_バッファ_と呼ばれるデータ構造上で動作する。全てのバッファはその固有の_ポイント_(カーソル位置)と_マーク_(ポイントと併せて、選択された_リージョン_を区切るためのもう1つの位置)、(適用可能な場合)バッファが_訪問_しているファイル名、そして変数で編集や振る舞いを制御する現在の_モード_のセット(正確には1つの「主モード」[_要説明_]と複数の「副モード」[_要説明_]からなる)を保存している。対話的に実行可能なEmacs Lispコードを_コマンド_という。コマンドはキープレスなどのイベントにバインドでき、さらに名前でアクセスすることもできる。コマンドの中にはバッファから任意のEmacs Lispコードを評価するもの(例としてはeval-regioneval-bufferなど)もある。

バッファは_ウィンドウ_内に表示される。ウィンドウは端末画面やGUIウィンドウのタイリングされた部分である(その部分はEmacs用語で_フレーム_と呼ばれ、複数のフレームが可能)。特に設定されていない場合、ウィンドウにはスクロールバー、行番号、一番上にある_ヘッダ行_(通常この行にはバッファタイトルやファイル名が表示される)、そして一番下にある_モード行_(通常この行には現在のモードとバッファにおけるポイントの位置のリストが表示される)が含まれる。

同じバッファ上で複数ウィンドウを開くことができるため、例えば1つの長いテキストから異なるパートを見ることができる。さらに複数バッファで同じテキストを共有できるので、例えば言語が混在したファイルで異なる主モードを利用することができる。M-x <mode name>により必要に応じてモードを手動で変更することもできる。

ふつう最下行にある_ミニバッファ_は、Emacsが情報を受け取る場所である。検索対象のテキストや読んだり保存したりするファイルの名前などの情報をミニバッファに入力する。一部の入力ではタブキーを用いて入力を補完することができる。ミニバッファは通常1行しかないが、ここでも通常のバッファと同じ移動・編集コマンドを使うことができる。

Emacsは、プログラマが単一インターフェースでコードを編集、コンパイルデバッグするような統合開発環境 (IDE) としても使うことができる。

このような編集機能にとどまらず、Emacs LispはTCP/IP通信や外部プロセスの起動などの機能を持っており、テキストエディタとしては一般的でない機能も多くEmacs Lispで記述されている。これらの機能を利用した様々なアプリケーションソフトウェアが書かれてきた。Emacsはこれらのアプリケーションソフトウェアを動作させる実行環境となっている。外部プロセスとして、UNIXのプロセスを起動する場合、Emacs はプロセスのフロントエンドプロセッサとして動作する。例えば、LISP を Emacs から起動すると、閉じカッコ")"がキーボードから入力された時それに対応する開きカッコ"("をハイライトするようなマクロを組んでおくことで、カッコの確認をしながら入力が可能である[48]

ライブラリーは、インターネットで見付けることができる。 新しいライブラリーを投稿するためのUsenetニュースグループgnu.emacs.sourcesまである。一部のライブラリーは、最終的にEmacsに取り込まれて、「標準」ライブラリーとなる。

GNU Emacs 24では、パッケージマネージャが内蔵された。公式のパッケージアーカイブであるGNU ELPA(Emacs Lisp Package Archive)[49]のほか、いくつかのアーカイブを扱うことができる。

Emacsには最初から各個別のコマンド、変数、内部関数の説明文字列を表示する、強力な_help_ライブラリが付属していた。このため通常の機能や現在の状態の情報をユーザーに提供するので、Emacsは_自己説明的_だと評される。各関数には説明文字列が含まれていて、要求に応じてユーザーに表示される。その後関数に説明文字列をつける習慣は、LISP、JavaPerl、およびPythonといったさまざまなプログラミング言語に広まった。このヘルプシステムにより、ユーザーは組込みのライブラリや追加されたサードパーティーのライブラリのどちらからも各関数用の実際のヘルプコードを取得できる。

Emacsには組み込みのチュートリアルもある。編集ファイルを指定せずEmacsを起動すると、簡単な編集コマンドの実行方法とチュートリアルを呼出す方法についての説明が表示される。このチュートリアルはStuart Cracraftとストールマンによって作られたものである。

GNU Emacsには組込みの説明文字列のほかにも、ストールマンの執筆した_GNU Emacs Manual_の電子コピーがついており、組込みのInfoブラウザで閲覧することができる。電子版のほかに、3種のマニュアルがフリーソフトウェア財団から書籍のかたちで刊行されている。

XEmacsの場合、ソフトウェア本体と同時にGNU Emacs Manualからフォークした同様のマニュアルがある他、Bill Lewis、ストールマン、Dan Laliberte共著の_Emacs Lisp Reference Manual_、Robert Chassel著の_Programming in Emacs Lisp_も含まれている。

_Emacs教会_の聖人、St IGNUciusとしてのリチャード・ストールマン

Emacs教会 (英語: Church of Emacs) とはEmacsユーザーによって作られたパロディ宗教英語版)である[50]。Emacs教会はviを「獣の数字」である(ローマ数字ではvi-vi-viは666を表すため)としているが、viのユーザーに反対しているわけではない。むしろプロプライエタリソフトウェアアナテマと呼んでいる(「viのフリーソフトウェア版を使うことは罪というより苦行である[51]」)。このパロディ宗教をサポートするためのEmacs教会のニュースグループとしてalt.religion.emacs,[52]が存在する。Emacsユーザーの中には「よりよいものを真似る」ことを試みたとして、viの支持者は対抗として_viカルト_ (英語: Cult of vi) を作成した。

ストールマンは冗談で自身をEmacs教会の聖人 (英語: saint) であるSt IGNUciusとしている[53]

Emacsの修飾キーへの強い依存が反復性過労障害英語版)となるというフォークロアは_Emacs小指_ (英語: Emacs pinky) と呼ばれる[54]

ユーザーは様々なアプローチでEmacs小指に対処してきた。ソフトウェア側の手段には以下のようなものがある[55]:

ハードウェアによる解決法としては、修飾キーを親指で簡単に操作できるKinesis Contoured Keyboardや、手の平で押せるようキーボードの両側に対称的に手の平で押すことができる巨大な修飾キーを配置したMicrosoft Natural keyboard英語版)がある[54]。フットペダルも利用できる。

Emacsが開発されたスペースカデットキーボードは、スペースキーに隣接したコントロールキーが巨大で親指が届き易かった[62]

英語においてboxenやVAXenのように、_emacs_という単語の複数形を_emacsen_と綴ることもある[63]

この節には独自研究が含まれているおそれがあります。 問題箇所を検証出典を追加して、記事の改善にご協力ください。議論はノートを参照してください。(2011年5月)

EmacsのLispベースの設計の欠点は、Lispコードの読込み、解釈 に伴う性能への負荷である。 Emacsが最初に実装されたシステムでは大抵、競合するテキストエディタよりかなり遅かった。このことをジョークにした、頭文字による略語がEMACSになる文がいくつか存在する(このようなジョークは他にも存在し、例えばユーザー・インターフェースをネタにした (Escape Meta Alt Control Shift) などがある)。

ただし、最近のコンピュータは十分速くなり、以前言われていたほどEmacsを遅いと感じることはめったになくなった。実際、Emacsは最近のワードプロセッサよりも素速く立ち上がる。

さらに、GNU Emacs 23以降はEmacsをサーバープログラムとして立ち上げておくデーモンモードが追加された。この場合、Emacs本体はOS起動時に自動的に一度起動するだけなので、速度は問題にならない。

  1. ^ 他の共同制作者としてリチャード・ストールマンがクレジットされることが多いが、ダニエル・ウェインレブ英語版)は「(TECOベースである)オリジナルのEmacsはガイ・L・スティール・ジュニアとデイヴィッド・ムーンが開発・設計した。彼らがEmacsを動くようにした後で、MIT AI研における標準テキストエディタとして確立されていき、ストールマンがそのメンテナンスを引き継いだ」と記している。ムーン自身は「私が覚えている限り、それは全て真実だ。しかし公正を期して言えば、ストールマンがガイと私からEmacsを『解放した』後、ストールマンがEmacsを大幅に改善したと言わなければならない」と応えた。以下を参照 : ウェインレブ, ダニエル (November 11, 2007), “Rebuttal to Stallman’s Story About The Formation of Symbolics and LMI”, Dan Weinreb's blog: software and innovation, オリジナルのJanuary 1, 2009時点におけるアーカイブ。, https://web.archive.org/web/20090101103828/http://danweinreb.org/blog/rebuttal-to-stallmans-story-about-the-formation-of-symbolics-and-lmi

  2. ^/EmacsReleaseDates”. 2017年11月1日閲覧。

  3. ^ a b Zawinski, Jamie (2005年6月21日). “Emacs Timeline”. 11 August 2015閲覧。

  4. ^A Tutorial Introduction to GNU Emacs”. 2017年5月15日閲覧。 “For an editor to be called "emacs" the main requirement is that it be fully extensible with a real programming language, not just a macro language.”

  5. ^GNU Emacs Pocket Reference”. 2017年11月1日閲覧。 “GNU Emacs is the most popular and widespread of the Emacs family of editors.”

  6. ^最初の声明”. FSF. 2023年9月27日閲覧。

  7. ^Initial Announcement”. FSF. 2023年9月27日閲覧。

  8. ^GNU Emacs Manual”. GNU Emacs Manual. FSF. 24 November 2012閲覧。

  9. ^Introducing Elfeed, an Emacs Web Feed Reader”. 2016年6月12日閲覧。

  10. ^Amusements”. 2017年11月1日閲覧。 “Finally, if you find yourself frustrated, try describing your problems to the famous psychotherapist Eliza. Just do M-x doctor.”

  11. ^A Guided Tour of Emacs”. 2016年6月12日閲覧。 “Some users find that they can do almost all of their work from within Emacs.”

  12. ^ Greenberg, Bernard S. (1979). Multics Emacs: The History, Design and Implementation. http://www.multicians.org/mepap.html 2016年6月12日閲覧。

  13. ^GNU Emacs FAQ”. 2016年6月12日閲覧。

  14. ^ a b c Adrienne G. Thompson. “MACSimizing TECO”. 2016年6月12日閲覧。

  15. ^A history of Emacs”. XEmacs Internals Manual (2006年12月11日). 2007年8月22日閲覧。

  16. ^ Allombert, Bill. “Debian Popularity Contest”. Editors report. Debian. 22 November 2011閲覧。

  17. ^The 10 oldest, significant open-source programs”. 2017年11月1日閲覧。

  18. ^ Raymond, Eric S.; Cameron, Debra; Rosenblatt, Bill (1996). Learning GNU Emacs, 2nd Edition. Sebastopol, CA: O'Reilly. pp. 408–409. ISBN 1-56592-152-6. https://books.google.com/books?id=a_lea3-w-1kC&pg=PA408&dq=bucky+keyboard#PPA408,M1

  19. ^ Arthur Samuel (March 1980). “Essential E”. 2011年8月1日閲覧。[_リンク切れ_]

  20. ^EMACS vs. vi: The endless geek 'holy war'”. 2016年6月12日閲覧。 “"EMACS as such actually started out as a standards project," emails Guy Steele”

  21. ^ Stallman, Richard M. (1987年). “The EMACS Full-Screen Editor”. GARB (Lysator, Linköping University) (Maj 1987): pp. 8–11. http://www.lysator.liu.se/history/garb/txt/87-1-emacs.txt 2007年9月14日閲覧。.

  22. ^The Emac Bolio Name Koan”. David G. Wiseman: Stories of Computer Folklore (1992年2月10日). 2016年6月12日閲覧。 “A cocky novice once said to Stallman: 'I can guess why the editor is called Emacs, but why is the justifier called Bolio?'. Stallman replied forcefully, Names are but names, Emack & Bolio's is the name of a popular ice cream shop in Boston town. Neither of these men had anything to do with the software.' His question answered, yet unanswered, the novice turned to go, but Stallman called to him, 'Neither Emacs nor Bolio had anything to do with the ice cream shop, either.'”[_リンク切れ_]

  23. ^ a b Stallman, Richard (26 March 1981). EMACS: The Extensible, Customizable, Self-Documenting, Display Editor (Technical report). MIT AI Lab. AI Memo 519a. 2022年6月7日閲覧。

  24. ^ Leigh Klotz (2007年8月29日). “email quoted in "Be Careful What You Joke About"”. The New York Times. http://pogue.blogs.nytimes.com/2007/08/29/be-careful-what-you-joke-about/ 2010年5月1日閲覧。

  25. ^Comment by ZWEI's author Dan Weinreb”. 2016年6月12日閲覧。 “I wrote the second Emacs ever: the Lisp machine implementation, whose spec was "do what Stallman's PDP-10 (original) Emacs does", and then progressed from there. There's just a whole LOT of it. It took me and Mike McMahon endless hours to implement so many commands to make ZWEI/Zmacs.”

  26. ^ RMS Lecture at KTH: Japanese

  27. ^ プロプライエタリソフトウェアとは、ソースコードが公開されていないソフトウェアで、プログラムを自由に配布や改変、逆コンパイルをすることができないものを指す用語である。

  28. ^A History of Emacs”. 2016年6月12日閲覧。

  29. ^emacs-devel msg 00872 (2014-09-29)”. 2016年6月12日閲覧。 “In retrospect 24.3 should have been named 25.1 and 24.4 should have been named 26.1. The .N thingy should really be kept only for bug-fix releases and neither of 24.3, 24.4, nor the previously planned 24.5 are bug-fix releases.”

  30. ^ Stoll, Clifford (1988). “Stalking the wily hacker”. Communications of the ACM 31 (5): 484?497. doi:10.1145/42411.42412

  31. ^New Git repository is up.”. 2016年6月12日閲覧。

  32. ^Re: Looking for a new Emacs maintainer or team”. gnu.org Mailing List. 2008年2月23日閲覧。; see also "Stallman on handing over GNU Emacs, its future and the importance of nomenclature"

  33. ^Emacs gets new maintainer as Richard Stallman signs off”. 2017年11月1日閲覧。

  34. ^Ugliest…repository…conversion…ever”. 2016年6月12日閲覧。 “twenty-nine years of continuous development by no fewer than 579 people”

  35. ^ Stephen J., Turnbull. “XEmacs vs. GNU Emacs”. 2012年10月2日閲覧。

  36. ^XEmacs is Dead. Long Live XEmacs!”. 2016年6月12日閲覧。

  37. ^ FrontPage - Meadow WikiArchived 2012-02-16 at the Wayback Machine.

  38. ^SXEmacs Website”. Sxemacs.org (2009年10月11日). 2009年11月8日閲覧。

  39. ^ http://www.stifflog.com/2006/10/16/stiff-asks-great-programmers-answer/

  40. ^NotGNU Emacs Editor (Author's Official Download Site)”. Notgnu.org (2004年1月15日). 2009年11月8日閲覧。

  41. ^Zile home page”. 2016年6月20日閲覧。

  42. ^QEmacs Homepage”. Fabrice.bellard.free.fr. 2009年11月8日閲覧。

  43. ^ Christian Jullien. (1986年). “EmACT on sourceforge”. Christian Jullien. 31 December 2011閲覧。

  44. ^AMACS source”. 2016年6月12日閲覧。

  45. ^apple2.org”. 2016年6月12日閲覧。

  46. ^Cocoa text system”. 2016年6月12日閲覧。

  47. ^SublemacsPro plugin for Sublime Text”. 2016年6月12日閲覧。

  48. ^Init file”. 2016年6月20日閲覧。

  49. ^ 村井純、井上尚司、砂原秀樹『プロフェッショナルUNIX』株式会社アスキー、1986年1月15日、243頁。ISBN 4-87148-184-0

  50. ^ https://elpa.gnu.org/packages/

  51. ^Saint IGNUcius - Richard Stallman”. 29 January 2015閲覧。

  52. ^The unabridged selective transcript of Richard M Stallman's talk at the ANU”. 29 January 2015閲覧。

  53. ^ alt.religion.emacs newsgroup

  54. ^ Saint IGNUcius - Richard Stallman

  55. ^ a bHow To Avoid The Emacs Pinky Problem”. Xahlee.org. 2009年11月8日閲覧。

  56. ^EmacsWiki: Repeated Strain Injury”. 29 January 2015閲覧。

  57. ^Moving The Ctrl Key”. EmacsWiki. 2009年11月8日閲覧。

  58. ^EmacsWiki: Ace Jump”. 29 January 2015閲覧。

  59. ^Spacemacs”. 2015年4月20日閲覧。

  60. ^ BayleShanks (2009年10月7日). “Sticky Modifiers”. EmacsWiki. 2009年11月8日閲覧。

  61. ^Viper Mode”. EmacsWiki. 2009年11月8日閲覧。

  62. ^At Home Modifier by Evdev”. 2015年4月14日閲覧。

  63. ^Why Emacs's Keyboard Shortcuts are Painful”. 2016年6月12日閲覧。

  64. ^VAXen”. Catb.org. 2009年11月8日閲覧。

  65. ^ GLYN MOODY 小山祐司監訳『ソースコードの反逆』株式会社アスキー、2002年6月11日、288頁。

  66. ^Some funny acronym expansions of Emacs”. 7 Nov 2021閲覧。

ウィキメディア・コモンズには、**Emacs**に関連するカテゴリがあります。

ウィキブックスに**Emacs**関連の解説書・教科書があります。

テキストエディタ
クロスプラットフォーム Ace英語版AtomBrackets Emacs (GNU Emacs) ed gedit Geany jEdit Kate KEdit Komodo Edit英語版KWrite Leafpad Light Table MinEd nano nvi Scintilla SciTE Scribessed Sublime Text Text Editor and Corrector UltraEdit英語版vi Vim Visual Studio Code WZ EDITOR
Windows用のみ Aprotool TM EditorApsalyDanaEmEditor gPadJ-crefK2EditorMeadowMery MIFES Notepad++ Notepad2oedit PeggyPerlEditorQXエディタSpace EditorTeraPad TextPad UnEditorViVi xyzzyサクラエディタ 秀丸エディタ メモ帳
Mac OS/macOS用のみ Alpha Aquamacs BBEdit英語版CotEditor iTextJedit mi SimpleTextTex-Edit Plus英語版)† TextMate英語版)† VimR WriteRoom テキストエディット
その他 EDLIN QED SE3VZ Editor
†印は開発終了 一覧