出典: フリー百科事典『ウィキペディア(Wikipedia)』
55行目:
55行目:
=== その他の初期実装 ===
=== その他の初期実装 ===
その後、他のコンピュータシステム用に多くのEmacs風エディタが書かれた。これらにはMichael McMahonと{{仮リンク|Daniel Weinreb|en|Daniel Weinreb}}らが[[LISPマシン]]用に書いた {{仮リンク|EINE|en|EINE and ZWEI}} (''Eine Is Not Emacs'') とZWEI (''Zwei Was Eine Initally'')<ref>{{cite web|url=http://steve-yegge.blogspot.be/2008/04/xemacs-is-dead-long-live-xemacs.html#c8187829185600860534|title=Comment by ZWEI's author Dan Weinreb|quote=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.|accessdate=2016-06-12}}</ref>(なお、ZWEIはドイツ語で「2」の意味でもある。EINEが「1つの」(女性形)にあたるためのもじり。ストールマンの呼ぶEINEは「アイン」のように聞こえるが、ドイツ語の発音は「アイネ」に近い)、そしてOwen Theodore Andersonによって書かれたSINE (''Sine Is Not Emacs'') がある。WeinrebのEINEはLISPで書かれた最初のEmacsである。1978年には[[ハネウェル]]ケンブリッジ情報システム研究所で{{仮リンク|Bernard Greenberg|en|Bernard Greenberg}}により{{仮リンク|Multics Emacs|en|Multics Emacs}}がほぼ全てをMultics Lispで書かれ、その後{{仮リンク|Richard Soley|en|Richard Soley}}とBarry Margolinによりメンテナンスされた。なおRichard SoleyはNILプロジェクト用にNILEというEmacs風エディタを開発し続けていた。GNU Emacsを含むEmacsのバージョンの多くは後に拡張言語としてLISPを採用することになる。UNIXで動作する最初のEmacs風エディタは、後に[[NeWS]]や[[Java]]の開発で知られることになる[[ジェームス・ゴスリング]]が1981年に書いた{{仮リンク|Gosling Emacs|en|Gosling Emacs}}であった。 これは[[C言語|C]]で書かれ、{{仮リンク|Mocklisp|en|Mocklisp}}というLISP風構文の拡張言語を使っていた。Mocklispにはシンボルさえなく<ref>[http://www.gnu.org/philosophy/stallman-kth.ja.html RMS Lecture at KTH: Japanese]</ref>、構文がLISP風なだけで本当のLISPではない。Gosling Emacsは、現在広く使われている[[フリーソフトウェア]]の[[GNU Emacs<!-- ループリンク -->]]や[[Meadow]]とは異なり[[プロプライエタリ・ソフトウェア]]であった。プロプライエタリ・ソフトウェアとは、[[ソースコード]]が公開されていないソフトウェアで、プログラムを自由に配布や改変、逆コンパイルをすることができないものを指す用語である。
その後、他のコンピュータシステム用に多くのEmacs風エディタが書かれた。これらにはMichael McMahonと{{仮リンク|Daniel Weinreb|en|Daniel Weinreb}}らが[[LISPマシン]]用に書いた {{仮リンク|EINE|en|EINE and ZWEI}} (''Eine Is Not Emacs'') とZWEI (''Zwei Was Eine Initally'')<ref>{{cite web|url=http://steve-yegge.blogspot.be/2008/04/xemacs-is-dead-long-live-xemacs.html#c8187829185600860534|title=Comment by ZWEI's author Dan Weinreb|quote=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.|accessdate=2016-06-12}}</ref>(なお、ZWEIはドイツ語で「2」の意味でもある。EINEが「1つの」(女性形)にあたるためのもじり。ストールマンの呼ぶEINEは「アイン」のように聞こえるが、ドイツ語の発音は「アイネ」に近い)、そしてOwen Theodore Andersonによって書かれたSINE (''Sine Is Not Emacs'') がある。WeinrebのEINEはLISPで書かれた最初のEmacsである。1978年には[[ハネウェル]]ケンブリッジ情報システム研究所で{{仮リンク|Bernard Greenberg|en|Bernard Greenberg}}により{{仮リンク|Multics Emacs|en|Multics Emacs}}がほぼ全てを[[Maclisp| Multics MACLISP]]を用いて 書かれ、その後{{仮リンク|Richard Soley|en|Richard Soley}}とBarry Margolinによりメンテナンスされた。なおRichard SoleyはNILプロジェクト用にNILEというEmacs風エディタを開発し続けていた。GNU Emacsを含むEmacsのバージョンの多くは後に拡張言語としてLISPを採用することになる。UNIXで動作する最初のEmacs風エディタは、後に[[NeWS]]や[[Java]]の開発で知られることになる[[ジェームス・ゴスリング]]が1981年に書いた{{仮リンク|Gosling Emacs|en|Gosling Emacs}}であった。 これは[[C言語|C]]で書かれ、{{仮リンク|Mocklisp|en|Mocklisp}}というLISP風構文の拡張言語を使っていた。Mocklispにはシンボルさえなく<ref>[http://www.gnu.org/philosophy/stallman-kth.ja.html RMS Lecture at KTH: Japanese]</ref>、構文がLISP風なだけで本当のLISPではない。Gosling Emacsは、現在広く使われている[[フリーソフトウェア]]の[[GNU Emacs<!-- ループリンク -->]]や[[Meadow]]とは異なり[[プロプライエタリ・ソフトウェア]]であった。プロプライエタリ・ソフトウェアとは、[[ソースコード]]が公開されていないソフトウェアで、プログラムを自由に配布や改変、逆コンパイルをすることができないものを指す用語である。
=== GNU Emacs ===
=== GNU Emacs ===
2018年3月21日 (水) 20:40時点における版
この項目では、Emacsエディタ全般について説明しています。GNUプロジェクトによるEmacsについては「GNU Emacs 」をご覧ください。
歴史
GNU Emacs におけるC ソースコード の編集
GNU Emacs からC++ コードを編集してコンパイル
Emacsのインタフェースはシンボリックス のスペースカデットキーボード の設計に影響を与えた[16] 。
E m a c s は 1 9 7 0 年 代 の M I T 人 工 知 能 研 究 所 ︵ M I T A I 研 ︶ で 産 声 を あ げ た 。 AI 研 で 使 わ れ て い た P D P - 6 や P D P - 1 0 の オ ペ レ ー テ ィ ン グ シ ス テ ム は I n c o m p a t i b l e T i m e s h a r i n g S y s t e m ( I T S ) で あ り 、 そ の デ フ ォ ル ト エ デ ィ タ は T E C O と い う ラ イ ン エ デ ィ タ で あ っ た 。 T E C O は 現 在 の 一 般 的 な テ キ ス ト エ デ ィ タ と は 違 い 、 追 加 ・ 編 集 ・ 表 示 用 に そ れ ぞ れ 別 々 の モ ー ド が 存 在 し て い た 。 そ の た め 文 字 を 入 力 し て も 即 座 に 反 映 さ れ る わ け で は な く 、 代 わ り に T E C O コ マ ン ド 言 語 の ( ' i ' ) 文 字 を 入 力 し て 入 力 モ ー ド に 切 り 替 え て か ら 必 要 な 文 字 を 入 力 し 、 最 後 に ( < e s c > ) 文 字 を 入 力 し て エ デ ィ タ を コ マ ン ド モ ー ド に 再 度 切 り 替 え る 必 要 が あ り ︵ 上 書 き が 可 能 な た め 、 同 様 の テ ク ニ ッ ク が 使 わ れ た ︶ 、 し か も 入 力 モ ー ド で 編 集 中 の 文 字 は 画 面 に 表 示 さ れ な か っ た 。 な お こ の 振 る 舞 い は 現 在 も 使 わ れ て い る ed プ ロ グ ラ ム と 同 じ で あ る 。
リ チ ャ ー ド ・ ス ト ー ル マ ン は 、 1 9 7 2 年 と 1 9 7 4 年 に ス タ ン フ ォ ー ド 人 工 知 能 研 究 所 を 訪 れ 、 F r e d W r i g h t に よ り 書 か れ た そ の 研 究 所 の ﹁ E ﹂ エ デ ィ タ を 目 に し た [ 1 7 ] 。 E の 振 る 舞 い は 今 の エ デ ィ タ の 大 半 で 使 わ れ て い る 直 感 的 な W Y S I W Y G で あ り 、 ス ト ー ル マ ン は そ の 機 能 に 触 発 さ れ て M I T に 戻 っ た 。 AI 研 ハ ッ カ ー の 一 人 で あ る C a r l M i k k e l s e n は 、 利 用 者 が キ ー 操 作 す る た び に 画 面 表 示 を 更 新 す る ﹁ C o n t r o l - R ﹂ と い う 表 示 ・ 編 集 を 組 み 合 わ せ た モ ー ド を T E C O に 追 加 し て い た 。 ス ト ー ル マ ン は 、 こ の 更 新 が 効 率 的 に 動 く よ う 書 き 直 し 、 任 意 の キ ー 操 作 で T E C O プ ロ グ ラ ム が 動 く よ う に 利 用 者 が 再 定 義 で き る マ ク ロ 機 能 を T E C O の 表 示 ・ 編 集 モ ー ド に 追 加 し た [ 1 1 ] 。
E に は T E C O に 不 足 し て い た ラ ン ダ ム ア ク セ ス 編 集 機 能 が 搭 載 さ れ て い た 。 T E C O は P D P - 1 の 紙 テ ー プ を 編 集 す る た め に 設 計 さ れ た ペ ー ジ シ ー ケ ン シ ャ ル エ デ ィ タ で あ る た め 、 一 度 に 1 つ の 紙 テ ー プ し か 編 集 す る こ と し か で き ず 、 さ ら に 紙 テ ー プ の フ ァ イ ル に 存 在 す る ペ ー ジ の 順 に 編 集 し な け れ ば な ら な か っ た 。 E は デ ィ ス ク 上 の ペ ー ジ ラ ン ダ ム ア ク セ ス を 可 能 に す る た め 、 フ ァ イ ル を 構 造 化 す る と い う ア プ ロ ー チ を 採 用 し て い た が 、 ス ト ー ル マ ン は T E C O を 修 正 し て さ ら に 巨 大 な バ ッ フ ァ を 効 率 的 に 処 理 で き る よ う に す る と い う ア プ ロ ー チ を 採 用 し 、 フ ァ イ ル 全 体 を 単 一 バ ッ フ ァ と し て 読 み 込 み 、 編 集 し 、 書 き 込 め る よ う に フ ァ イ ル 管 理 方 法 を 変 更 し た 。 現 在 で は ほ と ん ど の エ デ ィ タ が こ の ア プ ロ ー チ を 用 い て い る 。
新 し い バ ー ジ ョ ン の T E C O は ま た た く 間 に AI 研 で 評 判 と な り 、 マ ク ロ を 意 味 す る ﹁ M A C ﹂ や ﹁ M A C S ﹂ が 語 尾 に 付 い た 名 前 の カ ス タ ム ・ マ ク ロ の 巨 大 な コ レ ク シ ョ ン が 溜 ま っ た 。 さ ら に そ の 2 年 後 、 ど ん ど ん ば ら ば ら に な っ て い く キ ー ボ ー ド ・ コ マ ン ド ・ セ ッ ト を 1 つ に 統 合 す る プ ロ ジ ェ ク ト を ガ イ ・ ス テ ィ ー ル が 引 き 受 け た [ 1 8 ] 。 ス ト ー ル マ ン は ス テ ィ ー ル と ハ ッ ク し た あ る 夜 の 後 、 新 し い マ ク ロ ・ セ ッ ト の 文 書 化 や 拡 張 の 機 能 を 含 む 実 装 を 完 成 さ せ た [ 1 1 ] 。 こ う し て で き あ が っ た シ ス テ ム は E d i t i n g M A C r o S や E w i t h M A C r o S を 意 味 す る E M A C S と 呼 ば れ る こ と に な る 。 ス ト ー ル マ ン に よ る と 、 E m a c s と し た の は ﹁ 当 時 I T S で < E > が 略 称 に 使 わ れ て い な か っ た か ら ﹂ で あ る [ 1 9 ] 。 作 り 話 で あ る H a c k e r k o a n ︵ 英 語 版 ︶ で は ケ ン ブ リ ッ ジ の 人 気 ア イ ス ク リ ー ム 店 ﹁ E m a c k & B o l i o ' s ︵ 英 語 版 ︶ ﹂ に ち な ん で 名 付 け ら れ た と し て い る [ 2 0 ] 。 操 作 可 能 な 最 初 の E M A C S シ ス テ ム は 1 9 7 6 年 後 半 に 姿 を 現 し た [ 2 1 ] 。
ス ト ー ル マ ン は E M A C S の 過 度 の カ ス タ ム 化 や 事 実 上 の 分 裂 の 危 険 に 気 づ い た た め 、 あ る 使 用 上 の 条 件 を つ け た [ 要 出 典 ] 。 彼 は 後 に 次 の よ う な 文 章 を 残 し て い る [ 2 1 ] :
﹁ E M A C S は 、 共 同 参 加 を 基 と し て 頒 布 さ れ る 。 つ ま り 改 良 点 は 全 て 、 組 み 入 れ て 頒 布 す る た め に 、 私 の と こ ろ へ 戻 っ て こ な け れ ば な ら な い ﹂
原 典 で あ る E m a c s は T E C O 同 様 に P D P - 1 0 上 だ け で 動 作 し た 。 E m a c s の 振 る 舞 い は T E C O の そ れ と は と 大 き く 異 な っ て い て T E C O と は 独 立 し た 別 の エ デ ィ タ と み な せ る よ う に な り 、 さ ら に E m a c s は 急 激 に I T S 上 の 標 準 編 集 プ ロ グ ラ ム と な っ た 。 M i k e M c M a h o n ︵ 英 語 版 ︶ は E m a c s を I T S か ら T E N E X や T O P S - 2 0 オ ペ レ ー テ ィ ン グ シ ス テ ム に 移 植 し た 。 初 期 の E m a c s へ の 貢 献 者 に は 、 こ の ほ か K e n t P i t m a n ︵ 英 語 版 ︶ 、 E a r l K i l l i a n 、 E u g e n e C i c c a r e l l i ら が い る 。 1 9 7 9 年 ま で に 、 E m a c s は M I T 人 工 知 能 研 究 所 や M I T コ ン ピ ュ ー タ 科 学 研 究 所 で 使 わ れ る 主 要 エ デ ィ タ と な っ た [ 2 2 ] 。
その他の初期実装
GNU Emacs
テキスト端末 で動くGNU Emacs
1 9 8 4 年 、 リ チ ャ ー ド ・ ス ト ー ル マ ン は プ ロ プ ラ イ エ タ リ ・ ソ フ ト ウ ェ ア で あ っ た G o s l i n g E m a c s の フ リ ー ソ フ ト ウ ェ ア に よ る 代 替 物 を 作 る べ く 、 G N U E m a c s に 取 り 組 み 始 め た 。 当 初 G N U E m a c s は G o s l i n g E m a c s を ベ ー ス と し て い た が 、 ス ト ー ル マ ン は M o c k l i s p イ ン タ プ リ タ を 本 物 の L I S P イ ン タ プ リ タ に 入 れ 替 え て し ま い 、 ほ ぼ す べ て の コ ー ド が 入 れ 替 わ っ た 。 G N U E m a c s は 揺 籃 期 の G N U プ ロ ジ ェ ク ト が リ リ ー ス し た 最 初 の プ ロ グ ラ ム と な っ た 。 G N U E m a c s は C で 書 か れ て お り 、 C で 実 装 さ れ た E m a c s L i s p ( E L i s p ) を 拡 張 言 語 と し て 提 供 す る 。 最 初 に 広 く 頒 布 さ れ た G N U E m a c s の バ ー ジ ョ ン は 1 9 8 5 年 に 登 場 し た 1 5 . 3 4 だ っ た 。 初 期 の G N U E m a c s の バ ー ジ ョ ン 番 号 は 1 . x . x の よ う に 最 初 の 桁 に C c o r e の バ ー ジ ョ ン を 表 す よ う 採 番 さ れ て い た が 、 バ ー ジ ョ ン 1 . 1 2 が 出 た 後 に メ ジ ャ ー 番 号 が 変 わ り そ う に な い た め 先 頭 の 1 を な く す こ と に し た の で 、 バ ー ジ ョ ン 番 号 は 1 か ら 13 に ス キ ッ プ し た [ 2 5 ] 。 最 初 の 公 開 リ リ ー ス で あ る バ ー ジ ョ ン 13 は 1 9 8 5 年 3 月 に 完 成 し た 。 2 0 1 4 年 9 月 に G N U e m a c s - d e v e l メ ー リ ン グ リ ス ト で 、 G N U E m a c s に ラ ピ ッ ド リ リ ー ス 戦 略 を 採 用 し 、 将 来 的 に バ ー ジ ョ ン 番 号 を よ り 迅 速 に 増 や し て い く こ と が 発 表 さ れ た [ 2 6 ] 。
G N U E m a c s は 後 に U N I X へ 移 植 さ れ 、 G o s l i n g E m a c s よ り も 多 く の 機 能 を 提 供 し た 。 そ れ ら の 機 能 の 中 で 代 表 的 な 物 は 、 拡 張 言 語 で あ る フ ル 機 能 を 持 っ た L I S P で あ る 。 そ れ か ら 瞬 く 間 に G N U E m a c s は G o s l i n g E m a c s に 取 っ て 代 わ り U N I X の E m a c s エ デ ィ タ の デ フ ァ ク ト と な っ た 。 M a r k u s H e s s ︵ 英 語 版 ︶ は 彼 の 1 9 8 6 c r a c k i n g s p r e e で 、 G N U E m a c s 電 子 メ ー ル サ ブ シ ス テ ム の セ キ ュ リ テ ィ 上 の 弱 点 を 悪 用 し 、 U N I X コ ン ピ ュ ー タ 上 で ス ー パ ー ユ ー ザ ー ア ク セ ス 権 を 取 得 し た [ 2 7 ] 。
E m a c s は 、 チ ュ ー リ ン グ 完 全 な 言 語 を 小 さ い 中 央 コ ア の 頂 点 で 起 動 す る 階 層 型 ア ー キ テ ク チ ャ を 使 用 す る 。 ス ト ッ ク さ れ た E m a c s 頒 布 の 約 3 / 4 ︵ 2 4 . 4 現 在 で は 1 6 1 1 k L O C の う ち 1 2 6 6 ︶ が E l i s p 拡 張 言 語 で 書 か れ て お り [ 1 ] 、 一 度 C に よ る 中 核 部 分 ︵ E l i s p イ ン タ プ リ タ を 実 装 し 、 2 4 . 4 現 在 で は 2 4 7 k L O C を 占 め る ︶ を 移 植 す れ ば E l i s p コ ー ド に 実 装 さ れ た 機 能 の セ ッ ト は 存 在 す る こ と に な る の で 、 E m a c s を 新 し い プ ラ ッ ト フ ォ ー ム に 移 植 す る こ と は ネ イ テ ィ ブ コ ー ド の み か ら 成 る 同 等 の プ ロ ジ ェ ク ト を 移 植 す る よ り は る か に 簡 単 で あ る 。 E m a c s の 移 植 は 理 論 上 中 核 部 の み を 新 し い プ ラ ッ ト フ ォ ー ム へ 移 植 す れ ば よ い 。 こ の た め 一 度 中 核 部 が 移 植 さ れ れ ば 、 C よ り も 高 級 な 言 語 で 実 装 さ れ た 部 分 は 最 小 限 度 の 作 業 で 済 む 。
G N U E m a c s の 開 発 は 伽 藍 と バ ザ ー ル で 伽 藍 式 開 発 の 例 に あ げ ら れ て い た よ う に 、 1 9 9 9 年 ま で 比 較 的 閉 鎖 的 だ っ た が 、 そ れ 以 降 は 公 開 さ れ た 開 発 メ ー リ ン グ リ ス ト と 匿 名 C V S ア ク セ ス を 採 用 す る よ う に な っ た 。 G N U E m a c s の 開 発 は 2 0 0 8 年 ま で は 単 一 の C V S ト ラ ン ク で 行 わ れ て い た が 2 0 0 9 年 末 よ り 分 散 型 バ ー ジ ョ ン 管 理 シ ス テ ム で あ る B a z a a r に 切 り 替 え ら れ 、 さ ら に 2 0 1 4 年 11 月 11 日 に G i t へ と 移 行 し た [ 2 8 ] 。
リ チ ャ ー ド ・ ス ト ー ル マ ン は 長 ら く G N U E m a c s の 主 要 な 管 理 者 を 務 め て い た が 、 時 代 と 共 に そ の 役 目 か ら 退 い て い っ た 。 2 0 0 8 年 か ら 2 0 1 5 年 ま で 管 理 は S t e p h a n M o n n i e r と C h o n g Y i d o n g に 引 き 継 が れ て い る [ 2 9 ] 。 2 0 1 5 年 に M I T に お け る ス ト ー ル マ ン と の 会 合 の 後 、 J o h n W i e g l e y が メ ン テ ナ と し て 指 名 さ れ た [ 3 0 ] 。 2 0 1 4 年 の 時 点 で 、 G N U E m a c s は そ の 歴 史 を 通 じ て 5 7 9 人 に よ り コ ミ ッ ト さ れ て き た [ 3 1 ] 。
G N U E m a c s の バ ー ジ ョ ン は 1 9 8 5 年 の う ち に 17 ま で あ が っ た が 、 そ れ 以 降 は 更 新 は 落 ち 着 い た 速 度 で 行 わ れ て い る 。
XEmacs
GNU/Linux 上のXEmacs 21.5
1 9 9 1 年 初 頭 、 G N U E m a c s 1 9 の 初 期 α 版 を ベ ー ス と し て J a m i e Z a w i n s k i ︵ 英 語 版 ︶ と L u c i d ︵ 英 語 版 ︶ 社 の 人 た ち に よ り L u c i d E m a c s が 開 発 さ れ た 。 コ ー ド ベ ー ス は す ぐ に 2 つ に 分 割 さ れ 、 開 発 チ ー ム は 単 一 プ ロ グ ラ ム と し て 併 合 し よ う と す る こ と を あ き ら め た [ 3 2 ] 。 こ れ は フ ォ ー ク し た フ リ ー ソ フ ト ウ ェ ア の う ち 初 期 の 最 も 有 名 な 例 の 1 つ で あ る 。 L u c i d E m a c s は X E m a c s と 名 前 を 変 え 、 E m a c s の 中 で G N U E m a c s に 次 い で 2 番 目 に 有 名 な 派 生 と な っ た [ 要 出 典 ] 。 X E m a c s の 開 発 は 2 0 0 9 年 1 月 に 最 新 の 安 定 版 で あ る バ ー ジ ョ ン 2 1 . 4 . 2 2 が リ リ ー ス さ れ て か ら 遅 く な っ て い き 、 そ の 一 方 で G N U E m a c s は 以 前 は X E m a c s に し か な か っ た 機 能 の 多 く を 実 装 し て い っ た 。 こ の た め 一 部 の ユ ー ザ ー は X E m a c s の 死 を 宣 言 す る よ う に な っ た [ 3 3 ] 。
その他のGNU Emacsのフォーク
XEmacsほど有名ではないGNU Emacsのフォークには以下のものがある:
様々なEmacsエディタ
Ruby のソースコードを編集中の、OpenBSD 5.3のタイニーEmacs風エディタmg (英語版 )
L I S P マ シ ン 用 の E m a c s で あ る Z m a c s ︵ 英 語 版 ︶
過 去 に お い て は 、 各 E m a c s プ ロ ジ ェ ク ト の 目 的 は 肥 大 化 し た E m a c s の 小 規 模 な バ ー ジ ョ ン 作 成 で あ っ た 。 G N U E m a c s は 当 初 、 当 時 の ハ イ エ ン ド で あ っ た 32 ビ ッ ト フ ラ ッ ト ア ド レ ス 空 間 と 少 な く と も 1 M i B の R A M を 搭 載 す る コ ン ピ ュ ー タ を 想 定 し て い た が 、 1 9 8 0 年 代 で は そ の よ う な コ ン ピ ュ ー タ は ハ イ エ ン ド な ワ ー ク ス テ ー シ ョ ン や ミ ニ コ ン ピ ュ ー タ で あ っ た の で 、 一 般 的 な パ ー ソ ナ ル コ ン ピ ュ ー タ の ハ ー ド ウ ェ ア で 動 作 す る よ う よ り 小 規 模 に 再 実 装 す る 必 要 が あ っ た 。 近 年 で は 小 規 模 な E m a c s ク ロ ー ン は ソ フ ト ウ ェ ア イ ン ス ト ー ル デ ィ ス ク に 収 ま る よ う 設 計 さ れ て い る [ 要 出 典 ] 。
小 規 模 バ ー ジ ョ ン 作 成 以 外 の プ ロ ジ ェ ク ト の 目 的 は 、 E L i s p 以 外 の L I S P 方 言 や L I S P と は 全 く 異 な る プ ロ グ ラ ミ ン グ 言 語 に よ る E m a c s の 実 装 で あ る 。 E m a c s ク ロ ー ン を 以 下 に 示 す 。 た だ し 現 在 そ の 全 て が 管 理 さ れ て い る わ け で は な い :
Emacsエミュレーションを使うエディタ
機能
E m a c s は 主 に テ キ ス ト エ デ ィ タ で あ り テ キ ス ト 要 素 を 操 作 す る よ う 設 計 さ れ て い る が 、 L a T e X 、 G h o s t s c r i p t 、 ウ ェ ブ ブ ラ ウ ザ と い っ た 外 部 の プ ロ グ ラ ム と 通 信 す る こ と で 、 ワ ー ド プ ロ セ ッ サ の よ う に 文 書 を 整 形 し た り 印 刷 す る こ と が で き る 。 E m a c s は 語 、 文 、 そ し て 段 落 と い っ た 異 な る セ マ ン テ ィ ッ ク 要 素 や 、 関 数 の よ う な ソ ー ス コ ー ド の 構 成 要 素 を 処 理 し た り 様 々 な 色 を 付 け る た め の コ マ ン ド を 提 供 す る 。 さ ら に E m a c s は 編 集 コ マ ン ド の ユ ー ザ ー 定 義 バ ッ チ 用 に キ ー ボ ー ド マ ク ロ も 提 供 す る 。
G N U E m a c s は リ ア ル タ イ ム 表 示 エ デ ィ タ で あ る の で 、 編 集 す る 度 に そ の 編 集 が オ ン ス ク リ ー ン で 表 示 さ れ る 。 こ れ は 現 在 の テ キ ス ト エ デ ィ タ の 標 準 的 振 る 舞 い で あ る が 、 E M A C S は 初 期 の 段 階 で こ の 機 能 を 実 装 し て い た た め 、 vi の よ う に 既 存 の テ キ ス ト に 新 し い 編 集 を 挿 入 す る た め に 個 別 の コ マ ン ド を 実 行 す る 必 要 が な か っ た 。
vi が 編 集 の た め の 基 本 的 な 機 能 の み を 搭 載 し て い た の に 対 し 、 E m a c s は イ ン ク リ メ ン タ ル サ ー チ ・ 無 制 限 の ア ン ド ゥ ・ ヤ ン ク ︵ ペ ー ス ト ︶ 用 の ス タ ッ ク ・ 複 数 の バ ッ フ ァ ・ バ ッ フ ァ 上 で シ ェ ル を 実 行 ・ 補 完 ・ 言 語 ご と の モ ー ド な ど 、 エ デ ィ タ と し て 考 え ら れ る 限 り の 機 能 を 詰 め 込 ん で い る 。 V i m で は E m a c s と 同 等 の こ と が で き る よ う に な っ て い る が 、 バ ッ フ ァ の 使 い 方 は E m a c s よ り 控 え め で あ る 。
一般的アーキテクチャ
文 書 へ の 文 字 列 挿 入 な ど の 基 本 的 な 編 集 操 作 を 含 む E m a c s の 機 能 は ほ と ん ど 全 て 、 L I S P の 方 言 で 書 か れ た 関 数 で 行 え る 。 G N U E m a c s で 使 わ れ る L I S P 方 言 は E m a c s L i s p ( E L i s p ) と し て 知 ら れ て い る 。 E L i s p 層 は C で 書 か れ た 基 本 的 な サ ー ビ ス と プ ラ ッ ト フ ォ ー ム を 抽 象 化 し た 概 念 の 、 安 定 し た コ ア の 頂 点 に 位 置 し て い る 。 L I S P 環 境 の 変 数 と 関 数 は 、 E m a c s の リ コ ン パ イ ル や 再 起 動 を せ ず と も 一 時 的 に 修 正 で き る 。
E m a c s は 追 加 属 性 を 持 つ テ キ ス ト を 含 ん だ バ ッ フ ァ と 呼 ば れ る デ ー タ 構 造 上 で 動 作 す る 。 全 て の バ ッ フ ァ は そ の 固 有 の ポ イ ン ト ︵ カ ー ソ ル 位 置 ︶ と マ ー ク ︵ ポ イ ン ト と 併 せ て 、 選 択 さ れ た リ ー ジ ョ ン を 区 切 る た め の も う 1 つ の 位 置 ︶ 、 ︵ 適 用 可 能 な 場 合 ︶ バ ッ フ ァ が 訪 問 し て い る フ ァ イ ル 名 、 そ し て 変 数 で 編 集 や 振 る 舞 い を 制 御 す る 現 在 の モ ー ド の セ ッ ト ︵ 正 確 に は 1 つ の ﹁ 主 モ ー ド ﹂ [ 要 説 明 ] と 複 数 の ﹁ 副 モ ー ド ﹂ [ 要 説 明 ] か ら な る ︶ を 保 存 し て い る 。 E l i s p コ ー ド は コ マ ン ド と 名 付 け ら れ 、 イ ン タ ラ ク テ ィ ブ に 実 行 で き る 。 コ マ ン ド は キ ー プ レ ス に バ イ ン ド で き 、 さ ら に 名 前 で ア ク セ ス す る こ と も で き る 。 コ マ ン ド の 中 に は バ ッ フ ァ か ら 任 意 の E l i s p コ ー ド を 評 価 す る も の ︵ 例 と し て は e v a l
- r e g i o n
や e v a l - b u f f e r
な ど ︶ も あ る 。
バ ッ フ ァ は ウ ィ ン ド ウ 内 に 表 示 さ れ る 。 ウ ィ ン ド ウ は 端 末 画 面 や G U I ウ ィ ン ド ウ の タ イ リ ン グ さ れ た 部 分 で あ る ︵ そ の 部 分 は E m a c s 用 語 で フ レ ー ム と 呼 ば れ 、 複 数 の フ レ ー ム が 可 能 ︶ 。 特 に 設 定 さ れ て い な い 場 合 、 ウ ィ ン ド ウ に は ス ク ロ ー ル バ ー 、 行 番 号 、 一 番 上 に あ る ヘ ッ ダ 行 ︵ 通 常 こ の 行 に は バ ッ フ ァ タ イ ト ル や フ ァ イ ル 名 が 表 示 さ れ る ︶ 、 そ し て 一 番 下 に あ る モ ー ド 行 ︵ 通 常 こ の 行 に は 現 在 の モ ー ド と バ ッ フ ァ に お け る ポ イ ン ト の 位 置 の リ ス ト が 表 示 さ れ る ︶ が 含 ま れ る 。
同 じ バ ッ フ ァ 上 で 複 数 ウ ィ ン ド ウ を 開 く こ と が で き る た め 、 例 え ば 1 つ の 長 い テ キ ス ト か ら 異 な る パ ー ト を 見 る こ と が で き る 。 さ ら に 複 数 バ ッ フ ァ で 同 じ テ キ ス ト を 共 有 で き る の で 、 例 え ば 言 語 が 混 在 し た フ ァ イ ル で 異 な る 主 モ ー ド を 利 用 す る こ と が で き る 。 M - x < m o d e n a
m e >
に よ り 必 要 に 応 じ て モ ー ド を 手 動 で 変 更 す る こ と も で き る 。
ふ つ う 最 下 行 に あ る ミ ニ バ ッ フ ァ は 、 E m a c s が 情 報 を 受 け 取 る 場 所 で あ る 。 検 索 対 象 の テ キ ス ト や 読 ん だ り 保 存 し た り す る フ ァ イ ル の 名 前 な ど の 情 報 を ミ ニ バ ッ フ ァ に 入 力 す る 。 一 部 の 入 力 で は タ ブ キ ー を 用 い て 入 力 を 補 完 す る こ と が で き る 。 ミ ニ バ ッ フ ァ は 通 常 1 行 し か な い が 、 こ こ で も 通 常 の バ ッ フ ァ と 同 じ 移 動 ・ 編 集 コ マ ン ド を 使 う こ と が で き る 。
カスタマイズ
● キ ー ス ト ロ ー ク を マ ク ロ に 記 録 し 、 複 雑 な 反 復 タ ス ク を 自 動 で 再 現 で き る 。 こ れ は 使 用 後 に 廃 棄 さ れ る 各 マ ク ロ に よ り ア ド ホ ッ ク ベ ー ス に 行 わ れ る こ と が 多 い 。 た だ し マ ク ロ を 保 存 し た り 、 後 で 呼 び 出 す こ と も で き る 。
● 起 動 時 に E m a c s は ~ / . e m a c s
と 名 付 け ら れ た E m a c s L i s p ス ク リ プ ト ︵ 近 年 の バ ー ジ ョ ン で は ~ / e m a c s . e l
や ~ / . e m a c s . d / i n i t . e l
で も よ い [ 4 5 ] 。 E m a c s は 最 初 に 見 つ け た ス ク リ プ ト を 実 行 し 、 そ れ 以 外 の ス ク リ プ ト は 無 視 す る ︶ を 実 行 す る 。 個 人 的 な カ ス タ マ イ ズ フ ァ イ ル は 任 意 の 長 さ や 組 み 合 わ せ で よ い が 、 通 常 は 以 下 の も の が 含 ま れ る :
● E m a c s の 振 る 舞 い を カ ス タ マ イ ズ す る た め の 、 グ ロ ー バ ル 変 数 や 関 数 呼 び 出 し の 設 定 。 例 と し て は ( s e t - d e f a u l t
- c o d i n g - s y s t e m s ' u t f - 8 )
な ど 。
● 標 準 的 な キ ー バ イ ン デ ィ ン グ を 上 書 き し た り 、 ユ ー ザ ー に と っ て 便 利 な の に デ フ ォ ル ト で バ イ ン ド さ れ て い な い キ ー を 持 つ コ マ ン ド 用 シ ョ ー ト カ ッ ト を 追 加 す る た め の キ ー バ イ ン デ ィ ン グ 。 例 : ( g l o b a l - s e t - k e y ( k b d " C - x C
- b " ) ' i b u f f e r )
● E m a c s の 拡 張 の 読 み 込 み 、 有 効 化 、 お よ び 初 期 化 ︵ E m a c s に は 多 く の 拡 張 が 付 属 し て い る が 、 デ フ ォ ル ト で は 極 少 数 し か 読 み 込 ま れ な い ︶ 。
● 指 定 さ れ た 時 間 に 任 意 の コ ー ド を 実 行 す る イ ベ ン ト フ ッ ク の 設 定 。 例 と し て は バ ッ フ ァ の 保 存 後 に 自 動 で ソ ー ス コ ー ド を リ コ ン パ イ ル す る a f t e r - s a v e - h o o k
な ど 。
● 任 意 の 複 数 フ ァ イ ル 実 行 。 通 常 は 長 す ぎ る 設 定 フ ァ イ ル を 管 理 で き る よ う に 均 等 な 部 分 に 分 割 す る た め の も の ︵ こ れ ら の 個 人 的 ス ク リ プ ト 用 の 伝 統 的 な 場 所 は ~ / . e m a c s . d /
と ~ / e l
i s p /
で あ る ︶ 。
● ﹁ カ ス タ マ イ ズ ﹂ 拡 張 に よ り 、 ユ ー ザ ー は . e m a c s
に 変 数 を 設 定 す る よ り も ユ ー ザ ー フ レ ン ド リ ー な 方 法 で 、 E m a c s 内 部 か ら イ ン タ ラ ク テ ィ ブ な カ ラ ー ス キ ー ム の よ う な 設 定 プ ロ パ テ ィ を 設 定 で き る 。 こ れ は 検 索 、 説 明 や ヘ ル プ 文 、 複 数 選 択 の 入 力 、 デ フ ォ ル ト へ の リ バ ー ト 、 再 起 動 を 必 要 と し な い 起 動 中 の E m a c s イ ン ス タ ン ス 修 正 や 、 他 の プ ロ グ ラ ム に お け る 好 み の 機 能 と 類 似 し た 他 の 機 能 を 提 供 す る 。 カ ス タ マ イ ズ さ れ た 値 は . e m a c s
︵ ま た は 他 の 指 定 フ ァ イ ル ︶ に 自 動 で 保 存 さ れ る 。
● テ ー マ は フ ォ ン ト や 色 の 選 択 に 影 響 を 与 え 、 e l i s p フ ァ イ ル で 定 義 さ れ カ ス タ マ イ ズ 拡 張 で 選 択 さ れ る 。
E m a c s は 、 プ ロ グ ラ マ が 単 一 イ ン タ ー フ ェ ー ス で コ ー ド を 編 集 、 コ ン パ イ ル 、 デ バ ッ グ す る よ う な 統 合 開 発 環 境 ( I D E ) と し て も 使 う こ と が で き る 。
こ の よ う な 編 集 機 能 に と ど ま ら ず 、 E m a c s L i s p は T C P / I P 通 信 や 外 部 プ ロ セ ス の 起 動 な ど の 機 能 を 持 っ て お り 、 テ キ ス ト エ デ ィ タ と し て は 一 般 的 で な い 機 能 も 多 く E m a c s L i s p で 記 述 さ れ て い る 。 こ れ ら の 機 能 を 利 用 し た 様 々 な ア プ リ ケ ー シ ョ ン ソ フ ト ウ ェ ア が 書 か れ て き た 。 E m a c s は こ れ ら の ア プ リ ケ ー シ ョ ン ソ フ ト ウ ェ ア を 動 作 さ せ る 実 行 環 境 と な っ て い る 。
ラ イ ブ ラ リ ー は 、 イ ン タ ー ネ ッ ト で 見 付 け る こ と が で き る 。
新 し い ラ イ ブ ラ リ ー を 投 稿 す る た め の U s e n e t ニ ュ ー ス グ ル ー プ g n u . e m a c s . s o u r c e s ま で あ る 。 一 部 の ラ イ ブ ラ リ ー は 、 最 終 的 に E m a c s に 取 り 込 ま れ て 、 ﹁ 標 準 ﹂ ラ イ ブ ラ リ ー と な る 。
G N U E m a c s 2 4 で は 、 パ ッ ケ ー ジ マ ネ ー ジ ャ が 内 蔵 さ れ た 。 公 式 の パ ッ ケ ー ジ ア ー カ イ ブ で あ る G N U E L P A ( E m a c s L i s p P a c k a g e A r c h i v e ) [ 4 6 ] の ほ か 、 い く つ か の ア ー カ イ ブ を 扱 う こ と が で き る 。
自己文書化
E m a c s に は 最 初 か ら 各 個 別 の コ マ ン ド 、 変 数 、 内 部 関 数 の 説 明 文 字 列 を 表 示 す る 、 強 力 な h e l p ラ イ ブ ラ リ が 付 属 し て い た 。 こ の た め 通 常 の 機 能 や 現 在 の 状 態 の 情 報 を ユ ー ザ ー に 提 供 す る の で 、 E m a c s は 自 己 説 明 的 だ と 評 さ れ る 。 各 関 数 に は 説 明 文 字 列 が 含 ま れ て い て 、 要 求 に 応 じ て ユ ー ザ ー に 表 示 さ れ る 。 そ の 後 関 数 に 説 明 文 字 列 を つ け る 習 慣 は 、 L I S P 、 J a v a 、 P e r l 、 お よ び P y t h o n と い っ た さ ま ざ ま な プ ロ グ ラ ミ ン グ 言 語 に 広 ま っ た 。 こ の ヘ ル プ シ ス テ ム に よ り 、 ユ ー ザ ー は 組 込 み の ラ イ ブ ラ リ や 追 加 さ れ た サ ー ド パ ー テ ィ ー の ラ イ ブ ラ リ の ど ち ら か ら も 各 関 数 用 の 実 際 の ヘ ル プ コ ー ド を 取 得 で き る 。
E m a c s に は 組 み 込 み の チ ュ ー ト リ ア ル も あ る 。 編 集 フ ァ イ ル を 指 定 せ ず E m a c s を 起 動 す る と 、 簡 単 な 編 集 コ マ ン ド の 実 行 方 法 と チ ュ ー ト リ ア ル を 呼 出 す 方 法 に つ い て の 説 明 が 表 示 さ れ る 。 こ の チ ュ ー ト リ ア ル は S t u a r t C r a c r a f t と リ チ ャ ー ド ・ ス ト ー ル マ ン に よ っ て 作 ら れ た も の で あ る 。
G N U E m a c s に は 組 込 み の 説 明 文 字 列 の ほ か に も 、 リ チ ャ ー ド ・ ス ト ー ル マ ン の 執 筆 し た G N U E m a c s M a n u a l の 電 子 コ ピ ー が つ い て お り 、 組 込 み の I n f o ブ ラ ウ ザ で 閲 覧 す る こ と が で き る 。 電 子 版 の ほ か に 、 3 種 の マ ニ ュ ア ル が フ リ ー ソ フ ト ウ ェ ア 財 団 か ら 書 籍 の か た ち で 刊 行 さ れ て い る 。
X E m a c s の 場 合 、 ソ フ ト ウ ェ ア 本 体 と 同 時 に G N U E m a c s M a n u a l か ら フ ォ ー ク し た 同 様 の マ ニ ュ ア ル が あ る 他 、 B i l l L e w i s 、 リ チ ャ ー ド ・ ス ト ー ル マ ン 、 D a n L a l i b e r t e 共 著 の E m a c s L i s p R e f e r e n c e M a n u a l 、 R o b e r t C h a s s e l 著 の P r o g r a m m i n g i n E m a c s L i s p も 含 ま れ て い る 。
texinfo はGNU Emacsの標準ドキュメントシステムであり、Emacsのマニュアルはtexinfoでドキュメント化されている。texinfoはTeX をベースにしたマークアップ言語を使って記述し、ハイパーテキスト的なブラウジング・検索が可能なオンラインドキュメントinfo として使用することも、TeXを経由して組版されたペーパドキュメントとしても利用することができる。
文化
Emacs教会
Emacs教会 の聖人、St IGNUcius としてのリチャード・ストールマン
Emacs小指
E m a c s の 修 飾 キ ー へ の 強 い 依 存 が 反 復 性 過 労 障 害 ︵ 英 語 版 ︶ と な る と い う フ ォ ー ク ロ ア は E m a c s 小 指 ( 英 語 : E m a c s p i n k y ) と 呼 ば れ る [ 5 1 ] 。
ユ ー ザ ー は 様 々 な ア プ ロ ー チ で E m a c s 小 指 に 対 処 し て き た 。 ソ フ ト ウ ェ ア 側 の 手 段 に は 以 下 の よ う な も の が あ る [ 5 2 ] :
● C a p s L o c k キ ー を コ ン ト ロ ー ル キ ー の 代 わ り に す る よ う に キ ー レ イ ア ウ ト を カ ス タ マ イ ズ す る [ 5 3 ] 。 類 似 の テ ク ニ ッ ク に は C a p s L o c k キ ー を 追 加 の コ ン ト ロ ー ル キ ー に 定 義 し た り 、 コ ン ト ロ ー ル キ ー と メ タ キ ー を 代 わ り に す る 。 こ の テ ク ニ ッ ク も E m a c s 小 指 に 対 し て 特 に 推 奨 さ れ て い る 。
● E m a c s に X w r i t s ︵ 英 語 版 ︶ [ 要 リ ン ク 修 正 ] や 組 み 込 み の t y p e - b r e a k - m o d e と い っ た 、 ユ ー ザ ー に 定 期 的 に 休 息 を 取 ら せ る よ う な ソ フ ト ウ ェ ア を 入 れ る 。
● 最 初 に 文 字 を 尋 ね て か ら 、 カ ー ソ ル の 動 き に 対 応 し た ア ク セ ス キ ー で そ の 文 字 が 出 現 す る よ う に す る 、 a c e - j u m p - m o d e
[ 5 4 ] の よ う な パ ッ ケ ー ジ や 、 類 似 の 階 層 ナ ビ ゲ ー シ ョ ン を 提 供 す る e l i s p 拡 張 を 使 う 。
● 先 進 的 な V i m エ ミ ュ レ ー シ ョ ン 層 の e v i l - m o d e
。
● V i m の よ う に 修 飾 キ ー な し で E m a c s コ マ ン ド を 入 力 す る た め の モ ー ド に よ る ア プ ロ ー チ を 提 供 す る g o d - m o d e
。
● S p a c e m a c s が 提 供 す る カ ス タ マ イ ズ さ れ た キ ー レ イ ア ウ ト の 使 用 。 s p a c e m a c s
は 制 御 シ ー ケ ン ス 用 の 主 要 な キ ー と し て ス ペ ー ス キ ー を 使 う プ ロ ジ ェ ク ト で あ り 、 e v i l - m o d e
と g o d
- m o d e
も 二 つ と も 重 点 的 に 組 み 込 ん で い る [ 5 5 ] 。
● キ ー の 組 み 合 わ せ の キ ー シ ー ケ ン ス を 変 え る ス テ ィ ッ キ ー キ ー ︵ 英 語 版 ︶ の 使 用 [ 5 6 ] 。
● 基 本 的 な テ キ ス ト 編 集 や 、 さ ら に 進 ん だ 機 能 の た め の E m a c s ス キ ー ム 用 に vi キ ー レ イ ア ウ ト を 使 え る よ う に す る 、 E m a c s の 組 み 込 み v i p e r - m o d e
の 使 用 [ 5 7 ] 。
● ス ペ ー ス キ ー の よ う な よ り 快 適 に ア ク セ ス で き る キ ー へ の も う 1 つ の 役 割 の 付 与 。 も う 1 つ の 役 割 を 割 り 当 て ら れ た キ ー は 、 他 の キ ー と 組 み 合 わ せ て 押 す こ と で コ ン ト ロ ー ル キ ー と し て 機 能 す る 。 人 間 工 学 キ ー ボ ー ド ︵ 英 語 版 ︶ や 、 日 本 語 キ ー ボ ー ド の よ う に ス ペ ー ス キ ー に 隣 接 す る よ り 多 く の キ ー を 持 つ キ ー ボ ー ド を 使 う 。 日 本 語 キ ー ボ ー ド は メ タ キ ー や シ フ ト キ ー 以 外 の 修 飾 キ ー の 親 指 操 作 が 可 能 で あ る [ 5 8 ] 。
● 制 限 さ れ た キ ー バ イ ン デ ィ ン グ の 人 間 工 学 サ ブ セ ッ ト を 使 っ た り 、 M
- x < c o m m a n d - n a m e >
を タ イ プ し て 他 の 機 能 に ア ク セ ス す る 。 M - x 自 体 も リ バ ウ ン ド で き る 。
● 音 声 入 力 に よ る E m a c s 操 作 。
● E m a c s と 相 互 作 用 せ ず に 毎 日 の タ ス ク を 行 う た め に 十 分 な E l i s p を 書 く 。
ハ ー ド ウ ェ ア に よ る 解 決 法 と し て は 、 修 飾 キ ー を 親 指 で 簡 単 に 操 作 で き る K i n e s i s C o n t o u r e d K e y b o a r d や 、 手 の 平 で 押 せ る よ う キ ー ボ ー ド の 両 側 に 対 照 的 に 手 の 平 で 押 す こ と が で き る 巨 大 な 修 飾 キ ー を 配 置 し た M i c r o s o f t N a t u r a l k e y b o a r d ︵ 英 語 版 ︶ が あ る [ 5 1 ] 。 フ ッ ト ペ ダ ル も 利 用 で き る 。
E m a c s が 開 発 さ れ た ス ペ ー ス カ デ ッ ト キ ー ボ ー ド は 、 ス ペ ー ス キ ー に 隣 接 し た コ ン ト ロ ー ル キ ー が 巨 大 で 親 指 が 届 き 易 か っ た [ 5 9 ] 。
用語
英語においてboxenやVAXen のように、emacs という単語の複数形をemacsen と綴ることもある[60] 。
問題点
こ の 節 に は 独 自 研 究 が 含 ま れ て い る お そ れ が あ り ま す 。 問 題 箇 所 を 検 証 し 出 典 を 追 加 し て 、 記 事 の 改 善 に ご 協 力 く だ さ い 。 議 論 は ノ ー ト を 参 照 し て く だ さ い 。 ︵ 2 0 1 1 年 5 月 ︶
● vi な ど に く ら べ て 起 動 が 遅 い 。 た だ し 、 E m a c s は 立 ち あ げ っ ぱ な し に し て お く 使 い 方 を す る こ と が 可 能 で あ り 、 長 い 起 動 時 間 は 問 題 に な ら な い と い う 反 論 も あ る 。
● E m a c s で は フ ァ イ ラ も オ プ シ ョ ン の 設 定 画 面 も 通 常 の エ デ ィ タ 画 面 と 同 じ 操 作 が 可 能 で あ る と い う 特 徴 が あ る が 、 ダ イ ア ロ グ ボ ッ ク ス な ど を 使 っ た G U I に 慣 れ た ユ ー ザ ー に と っ て 、 こ の よ う な UI は な じ み に く い 。
● カ ス タ マ イ ズ 可 能 な 機 能 の 数 が 極 端 に 多 く 、 何 を 設 定 し た ら い い の か わ か り づ ら い 。
● E m a c s L i s p に よ り 拡 張 機 能 が 作 り や す い た め 、 類 似 し た 機 能 を 実 現 し た 多 数 の 実 装 が 乱 立 し や す い 。
起動の遅さ
E m a c s の L i s p ベ ー ス の 設 計 の 欠 点 は 、 L i s p コ ー ド の 読 込 み 、 解 釈 に 伴 う 性 能 へ の 負 荷 で あ る 。
E m a c s が 最 初 に 実 装 さ れ た シ ス テ ム で は 大 抵 、 競 合 す る テ キ ス ト エ デ ィ タ よ り か な り 遅 か っ た 。 こ の こ と を ジ ョ ー ク に し た 、 頭 文 字 に よ る 略 語 が E M A C S に な る 文 が い く つ か 存 在 す る ︵ こ の よ う な ジ ョ ー ク は 他 に も 存 在 し 、 例 え ば ユ ー ザ ー ・ イ ン タ ー フ ェ ー ス を ネ タ に し た ( E s c a p e M e t a A l t C o n t r o l S h i f t ) な ど が あ る ︶ 。
● E i g h t M e g a b y t e A n d C o n s t a n t l y S w a p p i n g ︵ 8 M B で ち ょ く ち ょ く ス ワ ッ プ - 8 M B の メ モ リ ー が 広 か っ た 時 代 の 話 ︶
● E m a c s M a k e s A C o m p u t e r S l o w ︵ E m a c s は コ ン ピ ュ ー タ を 遅 く す る ︶
● E v e n t u a l l y M a l l o c s A l l C o m p u t e r S t o r a g e ︵ 結 局 コ ン ピ ュ ー タ の 全 記 憶 装 置 を m a l l o c す る ︶
● E v e n t u a l l y M a k e s A l l C o m p u t e r s S i c k ︵ 結 局 全 コ ン ピ ュ ー タ を ビ ョ ー キ に す る ︶
た だ し 、 最 近 の コ ン ピ ュ ー タ は 十 分 速 く な り 、 以 前 言 わ れ て い た ほ ど E m a c s を 遅 い と 感 じ る こ と は め っ た に な く な っ た 。 実 際 、 E m a c s は 最 近 の ワ ー ド プ ロ セ ッ サ よ り も 素 速 く 立 ち 上 が る 。
さ ら に 、 G N U E m a c s 2 3 以 降 は E m a c s を サ ー バ ー プ ロ グ ラ ム と し て 立 ち 上 げ て お く デ ー モ ン モ ー ド が 追 加 さ れ た 。 こ の 場 合 、 E m a c s 本 体 は OS 起 動 時 に 自 動 的 に 一 度 起 動 す る だ け な の で 、 速 度 は 問 題 に な ら な い 。
関連項目
注釈
Ciccarelli, Eugene (1978). An Introduction to the Emacs Editor . Cambridge, Massachusetts: MIT Artificial Intelligence Laboratory. AIM-447 PDF
Stallman, Richard M. (1981) [1979]. EMACS: The Extensible, Customizable, Self-Documenting Display Editor . Cambridge Massachusetts: MIT Artificial Intelligence Laboratory. AIM-519A PDF HTML
Stallman, Richard M. (2002). GNU Emacs Manual (15th ed.). GNU Press. ISBN 1-882114-85-X . https://www.gnu.org/software/emacs/manual/
Stallman, Richard M. (2002年). “My Lisp Experiences and the Development of GNU Emacs ”. 2007年2月1日 閲覧。
Chassel, Robert J. (2004). An Introduction to Programming in Emacs Lisp . GNU Press. ISBN 1-882114-56-6 . https://www.gnu.org/software/emacs/emacs-lisp-intro/
Glickstein, Bob (April 1997). Writing GNU Emacs Extensions . O'Reilly & Associates. ISBN 1-56592-261-1
Cameron, Debra; Elliott, James; Loy, Marc; Raymond, Eric; Rosenblatt, Bill (December 2004). Learning GNU Emacs, 3rd Edition . O'Reilly & Associates. ISBN 0-596-00648-9 . http://www.oreilly.com/catalog/gnu3/
Finseth, Craig A. (1991). The Craft of Text Editing -or- Emacs for the Modern World . Springer-Verlag & Co. ISBN 978-1-4116-8297-9 . http://www.finseth.com/craft/
Thompson, Adrienne G. (2009年). “MACSimizing TECO ”. 2012年2月26日 閲覧。
脚注
(一) ^ “ E m a c s H i s t o r y ” . 2 0 1 7 年 11 月 1 日 閲 覧 。
(二) ^ a b
Z a w i n s k i , J a m i e ( 2 0 0 5 年 6 月 21 日 ) . “ E m a c s T i m e l i n e ” . 2 0 1 5 年 8 月 11 日 閲 覧 。
(三) ^ “ A T u t o r i a l I n t r o d u c t i o n t o G N U E m a c s ” . 2 0 1 7 年 5 月 15 日 閲 覧 。 “ F o r a n e d i t o r t o b e c a l l e d " e m a c s " t h e m a i n r e q u i r e m e n t i s t h a t i t b e f u l l y e x t e n s i b l e w i t h a r e a l p r o g r a m m i n g l a n g u a g e , n o t j u s t a m a c r o l a n g u a g e . ”
(四) ^ “ G N U E m a c s P o c k e t R e f e r e n c e ” . 2 0 1 7 年 11 月 1 日 閲 覧 。 “ G N U E m a c s i s t h e m o s t p o p u l a r a n d w i d e s p r e a d o f t h e E m a c s f a m i l y o f e d i t o r s . ”
(五) ^ “ G N U E m a c s M a n u a l ” . G N U E m a c s M a n u a l . F S F . 2 0 1 2 年 11 月 24 日 閲 覧 。
(六) ^ “ I n t r o d u c i n g E l f e e d , a n E m a c s W e b F e e d R e a d e r ” . 2 0 1 6 年 6 月 12 日 閲 覧 。
(七) ^ “ A m u s e m e n t s ” . 2 0 1 7 年 11 月 1 日 閲 覧 。 “ F i n a l l y , i f y o u f i n d y o u r s e l f f r u s t r a t e d , t r y d e s c r i b i n g y o u r p r o b l e m s t o t h e f a m o u s p s y c h o t h e r a p i s t E l i z a . J u s t d o M - x d o c t o r . ”
(八) ^ “ A G u i d e d T o u r o f E m a c s ” . 2 0 1 6 年 6 月 12 日 閲 覧 。 “ S o m e u s e r s f i n d t h a t t h e y c a n d o a l m o s t a l l o f t h e i r w o r k f r o m w i t h i n E m a c s . ”
(九) ^ G r e e n b e r g , B e r n a r d S . ( 1 9 7 9 ) . M u l t i c s E m a c s : T h e H i s t o r y , D e s i g n a n d I m p l e m e n t a t i o n . http://www.multicians.org/mepap.html 2 0 1 6 年 6 月 12 日 閲 覧 。
(十) ^ “ G N U E m a c s F A Q ” . 2 0 1 6 年 6 月 12 日 閲 覧 。
(11) ^ a b c A d r i e n n e G . T h o m p s o n . “ M A C S i m i z i n g T E C O ” . 2 0 1 6 年 6 月 12 日 閲 覧 。
(12) ^ 他 の 共 同 制 作 者 と し て リ チ ャ ー ド ・ ス ト ー ル マ ン が ク レ ジ ッ ト さ れ る こ と が 多 い が 、 ダ ニ エ ル ・ ウ ェ イ ン レ ブ ︵ 英 語 版 ︶ は ﹁ ︵ T E C O ベ ー ス で あ る ︶ オ リ ジ ナ ル の E m a c s は ガ イ ・ L ・ ス テ ィ ー ル ・ ジ ュ ニ ア と デ イ ビ ッ ト ・ ム ー ン が 開 発 ・ 設 計 し た 。 彼 ら が E m a c s を 動 く よ う に し た 後 で 、 M I T A I 研 に お け る 標 準 テ キ ス ト エ デ ィ タ と し て 確 立 さ れ て い き 、 ス ト ー ル マ ン が そ の メ ン テ ナ ン ス を 引 き 継 い だ ﹂ と 記 し て い る 。 ム ー ン 自 身 は ﹁ 私 が 覚 え て い る 限 り 、 そ れ は 全 て 真 実 だ 。 し か し 公 正 を 期 し て 言 え ば 、 ス ト ー ル マ ン が ガ イ と 私 か ら E m a c s を ﹃ 解 放 し た ﹄ 後 、 ス ト ー ル マ ン が E m a c s を 大 幅 に 改 善 し た と 言 わ な け れ ば な ら な い ﹂ と 応 え た 。 以 下 を 参 照 : ウ ェ イ ン レ ブ , ダ ニ エ ル ( N o v e m b e r 1 1 , 2 0 0 7 ) , “ R e b u t t a l t o S t a l l m a n ’ s S t o r y A b o u t T h e F o r m a t i o n o f S y m b o l i c s a n d L M I ” , D a n W e i n r e b ' s b l o g : s o f t w a r e a n d i n n o v a t i o n , オ リ ジ ナ ル の J a n u a r y 1 , 2 0 0 9 時 点 に お け る ア ー カ イ ブ 。 , https://web.archive.org/web/20090101103828/http://danweinreb.org/blog/rebuttal-to-stallmans-story-about-the-formation-of-symbolics-and-lmi
(13) ^ “ A h i s t o r y o f E m a c s ” . X E m a c s I n t e r n a l s M a n u a l ( 2 0 0 6 年 12 月 11 日 ) . 2 0 0 7 年 8 月 22 日 閲 覧 。
(14) ^ A l l o m b e r t , B i l l . “ D e b i a n P o p u l a r i t y C o n t e s t ” . E d i t o r s r e p o r t . D e b i a n . 2 0 1 1 年 11 月 22 日 閲 覧 。
(15) ^ “ T h e 1 0 o l d e s t , s i g n i f i c a n t o p e n - s o u r c e p r o g r a m s ” . 2 0 1 7 年 11 月 1 日 閲 覧 。
(16) ^ R a y m o n d , E r i c S . ; C a m e r o n , D e b r a ; R o s e n b l a t t , B i l l ( 1 9 9 6 ) . L e a r n i n g G N U E m a c s , 2 n d E d i t i o n . S e b a s t o p o l , C A : O ' R e i l l y . p p . 4 0 8 – 4 0 9 . I S B N 1 - 5 6 5 9 2 - 1 5 2 - 6 . https://books.google.com/books?id=a_lea3-w-1kC&pg=PA408&dq=bucky+keyboard#PPA408,M1
(17) ^ A r t h u r S a m u e l ( 1 9 8 0 年 3 月 ) . “ E s s e n t i a l E ” . 2 0 1 1 年 8 月 1 日 閲 覧 。 [ リ ン ク 切 れ ]
(18) ^ “ E M A C S v s . v i : T h e e n d l e s s g e e k ' h o l y w a r ' ” . 2 0 1 6 年 6 月 12 日 閲 覧 。 “ " E M A C S a s s u c h a c t u a l l y s t a r t e d o u t a s a s t a n d a r d s p r o j e c t , " e m a i l s G u y S t e e l e ”
(19) ^ S t a l l m a n , R i c h a r d M . ( 1 9 8 7 年 ) . “ T h e E M A C S F u l l - S c r e e n E d i t o r ” . G A R B ( L y s a t o r , L i n k ö p i n g U n i v e r s i t y ) ( M a j 1 9 8 7 ) : p p . 8 – 1 1 . http://www.lysator.liu.se/history/garb/txt/87-1-emacs.txt 2 0 0 7 年 9 月 14 日 閲 覧 。 .
(20) ^ “ T h e E m a c B o l i o N a m e K o a n ” . D a v i d G . W i s e m a n : S t o r i e s o f C o m p u t e r F o l k l o r e ( 1 9 9 2 年 2 月 10 日 ) . 2 0 1 6 年 6 月 12 日 閲 覧 。 “ A c o c k y n o v i c e o n c e s a i d t o S t a l l m a n : ' I c a n g u e s s w h y t h e e d i t o r i s c a l l e d E m a c s , b u t w h y i s t h e j u s t i f i e r c a l l e d B o l i o ? ' . S t a l l m a n r e p l i e d f o r c e f u l l y , N a m e s a r e b u t n a m e s , E m a c k & B o l i o ' s i s t h e n a m e o f a p o p u l a r i c e c r e a m s h o p i n B o s t o n t o w n . N e i t h e r o f t h e s e m e n h a d a n y t h i n g t o d o w i t h t h e s o f t w a r e . ' H i s q u e s t i o n a n s w e r e d , y e t u n a n s w e r e d , t h e n o v i c e t u r n e d t o g o , b u t S t a l l m a n c a l l e d t o h i m , ' N e i t h e r E m a c s n o r B o l i o h a d a n y t h i n g t o d o w i t h t h e i c e c r e a m s h o p , e i t h e r . ' ” [ リ ン ク 切 れ ]
(21) ^ a b S t a l l m a n , R i c h a r d ( 2 6 M a r c h 1 9 8 1 ) . E M A C S : T h e E x t e n s i b l e , C u s t o m i z a b l e , S e l f - D o c u m e n t i n g , D i s p l a y E d i t o r ( P D F ) ( T e c h n i c a l r e p o r t ) . M I T A I L a b . A I M e m o 5 1 9 a . 2 0 1 1 年 1 月 7 日 閲 覧 。
(22) ^ L e i g h K l o t z ( 2 0 0 7 年 8 月 29 日 ) . “ e m a i l q u o t e d i n " B e C a r e f u l W h a t Y o u J o k e A b o u t " ” . T h e N e w Y o r k T i m e s . http://pogue.blogs.nytimes.com/2007/08/29/be-careful-what-you-joke-about/ 2 0 1 0 年 5 月 1 日 閲 覧 。
(23) ^ “ C o m m e n t b y Z W E I ' s a u t h o r D a n W e i n r e b ” . 2 0 1 6 年 6 月 12 日 閲 覧 。 “ I w r o t e t h e s e c o n d E m a c s e v e r : t h e L i s p m a c h i n e i m p l e m e n t a t i o n , w h o s e s p e c w a s " d o w h a t S t a l l m a n ' s P D P - 1 0 ( o r i g i n a l ) E m a c s d o e s " , a n d t h e n p r o g r e s s e d f r o m t h e r e . T h e r e ' s j u s t a w h o l e L O T o f i t . I t t o o k m e a n d M i k e M c M a h o n e n d l e s s h o u r s t o i m p l e m e n t s o m a n y c o m m a n d s t o m a k e Z W E I / Z m a c s . ”
(24) ^ R M S L e c t u r e a t K T H : J a p a n e s e
(25) ^ “ A H i s t o r y o f E m a c s ” . 2 0 1 6 年 6 月 12 日 閲 覧 。
(26) ^ “ e m a c s - d e v e l m s g 0 0 8 7 2 ( 2 0 1 4 - 0 9 - 2 9 ) ” . 2 0 1 6 年 6 月 12 日 閲 覧 。 “ I n r e t r o s p e c t 2 4 . 3 s h o u l d h a v e b e e n n a m e d 2 5 . 1 a n d 2 4 . 4 s h o u l d h a v e b e e n n a m e d 2 6 . 1 . T h e . N t h i n g y s h o u l d r e a l l y b e k e p t o n l y f o r b u g - f i x r e l e a s e s a n d n e i t h e r o f 2 4 . 3 , 2 4 . 4 , n o r t h e p r e v i o u s l y p l a n n e d 2 4 . 5 a r e b u g - f i x r e l e a s e s . ”
(27) ^ S t o l l , C l i f f o r d ( 1 9 8 8 ) . “ S t a l k i n g t h e w i l y h a c k e r ” . C o m m u n i c a t i o n s o f t h e A C M 31 ( 5 ) : 4 8 4 ? 4 9 7 . d o i : 1 0 . 1 1 4 5 / 4 2 4 1 1 . 4 2 4 1 2
(28) ^ “ N e w G i t r e p o s i t o r y i s u p . ” . 2 0 1 6 年 6 月 12 日 閲 覧 。
(29) ^ “ R e : L o o k i n g f o r a n e w E m a c s m a i n t a i n e r o r t e a m ” . g n u . o r g M a i l i n g L i s t . 2 0 0 8 年 2 月 23 日 閲 覧 。 ; s e e a l s o " S t a l l m a n o n h a n d i n g o v e r G N U E m a c s , i t s f u t u r e a n d t h e i m p o r t a n c e o f n o m e n c l a t u r e "
(30) ^ “ E m a c s g e t s n e w m a i n t a i n e r a s R i c h a r d S t a l l m a n s i g n s o f f ” . 2 0 1 7 年 11 月 1 日 閲 覧 。
(31) ^ “ U g l i e s t … r e p o s i t o r y … c o n v e r s i o n … e v e r ” . 2 0 1 6 年 6 月 12 日 閲 覧 。 “ t w e n t y - n i n e y e a r s o f c o n t i n u o u s d e v e l o p m e n t b y n o f e w e r t h a n 5 7 9 p e o p l e ”
(32) ^ S t e p h e n J . , T u r n b u l l . “ X E m a c s v s . G N U E m a c s ” . 2 0 1 2 年 10 月 2 日 閲 覧 。
(33) ^ “ X E m a c s i s D e a d . L o n g L i v e X E m a c s ! ” . 2 0 1 6 年 6 月 12 日 閲 覧 。
(34) ^ F r o n t P a g e - M e a d o w W i k i A r c h i v e d 2 0 1 2 - 0 2 - 1 6 a t t h e W a y b a c k M a c h i n e .
(35) ^ “ S X E m a c s W e b s i t e ” . S x e m a c s . o r g ( 2 0 0 9 年 10 月 11 日 ) . 2 0 0 9 年 11 月 8 日 閲 覧 。
(36) ^ h t t p : / / w w w . s t i f f l o g . c o m / 2 0 0 6 / 1 0 / 1 6 / s t i f f - a s k s - g r e a t - p r o g r a m m e r s - a n s w e r /
(37) ^ “ N o t G N U E m a c s E d i t o r ( A u t h o r ' s O f f i c i a l D o w n l o a d S i t e ) ” . N o t g n u . o r g ( 2 0 0 4 年 1 月 15 日 ) . 2 0 0 9 年 11 月 8 日 閲 覧 。
(38) ^ “ Z i l e h o m e p a g e ” . 2 0 1 6 年 6 月 20 日 閲 覧 。
(39) ^ “ Q E m a c s H o m e p a g e ” . F a b r i c e . b e l l a r d . f r e e . f r . 2 0 0 9 年 11 月 8 日 閲 覧 。
(40) ^ C h r i s t i a n J u l l i e n . ( 1 9 8 6 年 ) . “ E m A C T o n s o u r c e f o r g e ” . C h r i s t i a n J u l l i e n . 2 0 1 1 年 12 月 31 日 閲 覧 。
(41) ^ “ A M A C S s o u r c e ” . 2 0 1 6 年 6 月 12 日 閲 覧 。
(42) ^ “ a p p l e 2 . o r g ” . 2 0 1 6 年 6 月 12 日 閲 覧 。
(43) ^ “ C o c o a t e x t s y s t e m ” . 2 0 1 6 年 6 月 12 日 閲 覧 。
(44) ^ “ S u b l e m a c s P r o p l u g i n f o r S u b l i m e T e x t ” . 2 0 1 6 年 6 月 12 日 閲 覧 。
(45) ^ “ I n i t f i l e ” . 2 0 1 6 年 6 月 20 日 閲 覧 。
(46) ^ h t t p s : / / e l p a . g n u . o r g / p a c k a g e s /
(47) ^ “ S a i n t I G N U c i u s - R i c h a r d S t a l l m a n ” . 2 0 1 5 年 1 月 29 日 閲 覧 。
(48) ^ “ T h e u n a b r i d g e d s e l e c t i v e t r a n s c r i p t o f R i c h a r d M S t a l l m a n ' s t a l k a t t h e A N U ” . 2 0 1 5 年 1 月 29 日 閲 覧 。
(49) ^ a l t . r e l i g i o n . e m a c s n e w s g r o u p
(50) ^ S a i n t I G N U c i u s - R i c h a r d S t a l l m a n
(51) ^ a b “ H o w T o A v o i d T h e E m a c s P i n k y P r o b l e m ” . X a h l e e . o r g . 2 0 0 9 年 11 月 8 日 閲 覧 。
(52) ^ “ E m a c s W i k i : R e p e a t e d S t r a i n I n j u r y ” . 2 0 1 5 年 1 月 29 日 閲 覧 。
(53) ^ “ M o v i n g T h e C t r l K e y ” . E m a c s W i k i . 2 0 0 9 年 11 月 8 日 閲 覧 。
(54) ^ “ E m a c s W i k i : A c e J u m p ” . 2 0 1 5 年 1 月 29 日 閲 覧 。
(55) ^ “ S p a c e m a c s ” . 2 0 1 5 年 4 月 20 日 閲 覧 。
(56) ^ B a y l e S h a n k s ( 2 0 0 9 年 10 月 7 日 ) . “ S t i c k y M o d i f i e r s ” . E m a c s W i k i . 2 0 0 9 年 11 月 8 日 閲 覧 。
(57) ^ “ V i p e r M o d e ” . E m a c s W i k i . 2 0 0 9 年 11 月 8 日 閲 覧 。
(58) ^ “ A t H o m e M o d i f i e r b y E v d e v ” . 2 0 1 5 年 4 月 14 日 閲 覧 。
(59) ^ “ W h y E m a c s ' s K e y b o a r d S h o r t c u t s a r e P a i n f u l ” . 2 0 1 6 年 6 月 12 日 閲 覧 。
(60) ^ “ V A X e n ” . C a t b . o r g . 2 0 0 9 年 11 月 8 日 閲 覧 。
外部リンク
ウィキクォートに
Emacs に関する引用句集があります。
ウィキメディア・コモンズには、
Emacs に関連するカテゴリがあります。
ウィキブックスに
Emacs 関連の解説書・教科書があります。