コンテンツにスキップ

「Emacs」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
m en:Emacs (19:56, 27 October 2017 UTC) を翻訳して追加
G000001 (会話 | 投稿記録)
m →‎その他の初期実装: Multics Lisp -> Multics MACLISPへ修正
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における複数のDiredバッファの編集
開発元 デイビット・A・ムーン英語版ガイ・スティール・ジュニア
初版 1972年 (52年前) (1972)[1][2]
プログラミング
言語
LISP, C
対応OS TECOクロスプラットフォームUnix系
種別 テキストエディタ
テンプレートを表示

Emacs [ˈiːmæks][3]Emacs使GNU Emacs[4]Emacsthe extensible, customizable, self-documenting, real-time display editor[5]Emacs1970GNU Emacs2017

Emacs10,000LISPEmacs Lisp (ELisp) EmacsELispEmacsEmacsRSS[6]ELIZA[7]Emacs[8]

EMACS1972Carl MikkelsonALTECOEditor MACroS[2][9][10][11][12]TECO[13]

EmacsGNUGNU Emacs[14]XEmacs1991GNU EmacsGNU EmacsXEmacsLISP使

Emacsvi (Vim) UNIX2Emacs[15]

歴史

GNU EmacsにおけるCソースコードの編集
GNU EmacsからC++コードを編集してコンパイル
Emacsのインタフェースはシンボリックススペースカデットキーボードの設計に影響を与えた[16]

Emacs1970MITMIT AIAI使PDP-6PDP-10Incompatible Timesharing System (ITS) TECOTECOTECO ('i')  (<esc>) 使使ed

19721974Fred WrightE[17]E使WYSIWYGMITAICarl MikkelsenControl-RTECOTECOTECO[11]

ETECOTECOPDP-11ETECO

TECOAIMACMACS21[18][11]Editing MACroSE with MACroSEMACSEmacsITS<E>使[19]Hacker koanEmack & Bolio's[20]EMACS1976姿[21]

EMACS使[][21]:

EMACS

EmacsTECOPDP-10EmacsTECOTECOEmacsITSMike McMahonEmacsITSTENEXTOPS-20 EmacsKent PitmanEarl KillianEugene Ciccarelli1979EmacsMITMIT使[22]

その他の初期実装


EmacsMichael McMahonDaniel WeinrebLISP EINE (Eine Is Not Emacs) ZWEI (Zwei Was Eine Initally[23]ZWEI2EINE1EINEOwen Theodore AndersonSINE (Sine Is Not Emacs) WeinrebEINELISPEmacs1978Bernard GreenbergMultics EmacsMultics MACLISPRichard SoleyBarry MargolinRichard SoleyNILNILEEmacsGNU EmacsEmacsLISPUNIXEmacsNeWSJava1981Gosling Emacs CMocklispLISP使Mocklisp[24]LISPLISPGosling Emacs使GNU EmacsMeadow

GNU Emacs

テキスト端末で動くGNU Emacs

1984Gosling EmacsGNU EmacsGNU EmacsGosling EmacsMocklispLISPGNU EmacsGNUGNU EmacsCCEmacs Lisp (ELisp) GNU Emacs198515.34GNU Emacs1.x.xC core1.121113[25]131985320149GNU emacs-develGNU Emacs[26]

GNU EmacsUNIXGosling EmacsLISPGNU EmacsGosling EmacsUNIXEmacsMarkus Hess1986 cracking spreeGNU EmacsUNIX[27]

Emacs使Emacs3/424.41611kLOC1266Elisp[1]CElisp24.4247kLOCElispEmacsEmacsC

GNU Emacs1999CVSGNU Emacs2008CVS2009Bazaar20141111Git[28]

GNU Emacs退20082015Stephan MonnierChong Yidong[29]2015MITJohn Wiegley[30]2014GNU Emacs579[31]

GNU Emacs  198517

XEmacs

GNU/Linux上のXEmacs 21.5

1991GNU Emacs 19αJamie ZawinskiLucidLucid Emacs2[32] 1Lucid EmacsXEmacsEmacsGNU Emacs2[]XEmacs2009121.4.22GNU EmacsXEmacsXEmacs[33]

その他のGNU Emacsのフォーク

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

  • Meadow - Microsoft Windows用の日本語バージョン[34]
  • SXEmacs英語版 - Steve YoungsによるXEmacsのフォーク[35]
  • Aquamacs - GNU Emacsをベースとし、Macintoshユーザインタフェースと統合することに焦点を当てている(Aquamacs 3.2はGNU Emacsバージョン24をベースとし、Aquamacs 3.3はGNU Emacsバージョン25をベースとしている)。

様々なEmacsエディタ

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

LISPEmacsZmacs

EmacsEmacsGNU Emacs321MiBRAM1980Emacs[]

ELispLISPLISPEmacsEmacs:

MicroEMACS - Dave ConroyDaniel Lawrence使[36]

mg - MicroGNUEmacsmg2aMicroEMACSGNU EmacsOpenBSD

NotGNU[37] - Julie MelbinMS-DOSWin16Win32Linux

JOVE (Jonathan's Own Version of Emacs) - Jonathan PayneUnixEmacs

MINCE (MINCE Is Not Complete Emacs) - Mark of the UnicornCP/MDOSMINCEFinal WordFinal WordSprint ()

Perfect Writer - CP/MKaypro IIKaypro IVcirca 1982MINCEWordStarKaypro 10

Freemacs - 使DOSDOS64KiB

GNU Zile - ZileZile IsLossy Emacs[38]LuaZile Implements Lua EditorsZileZemacsLuaEmacsZivi

Zmacs - MIT LISPZetaLisp

Climacs - ZmacsCommon Lisp

QEmacs - Fabrice BellardMiBUTF-8使[39]

Epsilon - Lugaru SoftwareEmacsDOSWindowsLinuxFreeBSDmacOSOS/2EpsilonCLISP使MS-DOS使

PceEmacs - SWI-PrologEmacs

EmACT - 1986Christian JullienMicroEmacsEmACTSourceForge[40]

Amacs - EmacsApple II ProDOSBrian Fox6502[41][42]

Hemlock - Spice LispCommon LispCMU Common LispZmacsHelixLucid Common LispLispWorksClozure CLHemlockPortable HemlockHemlockCommon Lisp

Emacsエミュレーションを使うエディタ


Yi - HaskellHaskellEmacs

Joe's Own Editor - jmacsEmacs

JED - Emacs

Eclipse - Emacs

IntelliJ IDEA - Emacs

Epsilon - Emacsvi

Cocoa text system - Emacs使EmacsSuper使[43]

Sublime Text - SublemacsProEmacs[44]

Visual Studio Emacs Keys - Visual StudioEmacs

GNU Readline - Emacsvi

GNOME Builder - Emacs

機能


EmacsLaTeXGhostscriptEmacsEmacs

GNU EmacsEMACSvi

viEmacsVimEmacs使Emacs

一般的アーキテクチャ


EmacsLISPGNU Emacs使LISPEmacs Lisp (ELisp) ELispCLISPEmacs

Emacs11[][]ElispElispeval-regioneval-buffer

GUIEmacs

1M-x <mode name>

Emacs1使

カスタマイズ


使

Emacs~/.emacsEmacs Lisp~/emacs.el~/.emacs.d/init.el[45]Emacs:
Emacs(set-default-coding-systems 'utf-8)

便 : (global-set-key (kbd "C-x C-b") 'ibuffer)

EmacsEmacs

after-save-hook

~/.emacs.d/~/elisp/

.emacsEmacsEmacs.emacs

elisp

Emacs (IDE) 使

Emacs LispTCP/IPEmacs LispEmacs

稿Usenetgnu.emacs.sourcesEmacs

GNU Emacs 24GNU ELPA(Emacs Lisp Package Archive)[46]

自己文書化


EmacshelpEmacsLISPJavaPerlPython

EmacsEmacsStuart Cracraft

GNU EmacsGNU Emacs ManualInfo3

XEmacsGNU Emacs ManualBill LewisDan LaliberteEmacs Lisp Reference ManualRobert ChasselProgramming in Emacs Lisp
  • texinfoはGNU Emacsの標準ドキュメントシステムであり、Emacsのマニュアルはtexinfoでドキュメント化されている。texinfoはTeXをベースにしたマークアップ言語を使って記述し、ハイパーテキスト的なブラウジング・検索が可能なオンラインドキュメントinfoとして使用することも、TeXを経由して組版されたペーパドキュメントとしても利用することができる。

文化

Emacs教会

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

Emacs (: Church of Emacs) Emacs[47]Emacsvivi-vi-vi666vivi使[48]Emacsalt.religion.emacs,[49]Emacsvivi (: Cult of vi) 

Emacs (: saint) St IGNUcius[50]

Emacs小指


EmacsEmacs (: Emacs pinky) [51]

Emacs[52]:

CapsLock[53]CapsLockEmacs

EmacsXwrits[]type-break-mode

ace-jump-mode[54]elisp使

Vimevil-mode

VimEmacsgod-mode

Spacemacs使spacemacs使evil-modegod-mode[55]

使[56]

Emacsvi使Emacsviper-mode使[57]

11使[58]

使M-x <command-name>M-x

Emacs

EmacsElisp

Kinesis Contoured KeyboardMicrosoft Natural keyboard[51]

Emacs[59]

用語

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

問題点


viEmacs使

Emacs使GUIUI



Emacs Lisp 

起動の遅さ


EmacsLispLisp  EmacsEMACS (Escape Meta Alt Control Shift) 

Eight Megabyte And Constantly Swapping8MB - 8MB

Emacs Makes A Computer SlowEmacs

Eventually Mallocs All Computer Storagemalloc

Eventually Makes All Computers Sick

EmacsEmacs

GNU Emacs 23EmacsEmacsOS

関連項目

注釈

  • 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日閲覧。

脚注



(一)^ EmacsHistory. 2017111

(二)^ ab Zawinski, Jamie (2005621). Emacs Timeline. 2015811

(三)^ A Tutorial Introduction to GNU Emacs. 2017515 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.

(四)^ GNU Emacs Pocket Reference. 2017111 GNU Emacs is the most popular and widespread of the Emacs family of editors.

(五)^ GNU Emacs Manual. GNU Emacs Manual.  FSF. 20121124

(六)^ Introducing Elfeed, an Emacs Web Feed Reader. 2016612

(七)^ Amusements. 2017111 Finally, if you find yourself frustrated, try describing your problems to the famous psychotherapist Eliza. Just do M-x doctor.

(八)^ A Guided Tour of Emacs. 2016612 Some users find that they can do almost all of their work from within Emacs.

(九)^ Greenberg, Bernard S. (1979). Multics Emacs: The History, Design and Implementation. http://www.multicians.org/mepap.html 2016612 

(十)^ GNU Emacs FAQ. 2016612

(11)^ abcAdrienne G. Thompson. MACSimizing TECO. 2016612

(12)^ TECOEmacsLEmacsMIT AIEmacsEmacs : , (November 11, 2007), Rebuttal to Stallmans 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 

(13)^ A history of Emacs. XEmacs Internals Manual (20061211). 2007822

(14)^ Allombert, Bill. Debian Popularity Contest. Editors report.  Debian. 20111122

(15)^ The 10 oldest, significant open-source programs. 2017111

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

(17)^ Arthur Samuel (19803). Essential E. 201181[]

(18)^ EMACS vs. vi: The endless geek 'holy war'. 2016612 "EMACS as such actually started out as a standards project," emails Guy Steele

(19)^ Stallman, Richard M. (1987). The EMACS Full-Screen Editor. GARB (Lysator, Linköping University) (Maj 1987): pp. 811. http://www.lysator.liu.se/history/garb/txt/87-1-emacs.txt 2007914. 

(20)^ The Emac Bolio Name Koan. David G. Wiseman: Stories of Computer Folklore (1992210). 2016612 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.'[]

(21)^ abStallman, Richard (26 March 1981). EMACS: The Extensible, Customizable, Self-Documenting, Display Editor (PDF) (Technical report). MIT AI Lab. AI Memo 519a. 201117

(22)^ Leigh Klotz (2007829). 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/ 201051 

(23)^ Comment by ZWEI's author Dan Weinreb. 2016612 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.

(24)^ RMS Lecture at KTH: Japanese

(25)^ A History of Emacs. 2016612

(26)^ emacs-devel msg 00872 (2014-09-29). 2016612 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.

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

(28)^ New Git repository is up.. 2016612

(29)^ Re: Looking for a new Emacs maintainer or team.  gnu.org Mailing List. 2008223; see also "Stallman on handing over GNU Emacs, its future and the importance of nomenclature"

(30)^ Emacs gets new maintainer as Richard Stallman signs off. 2017111

(31)^ Ugliestrepositoryconversionever. 2016612 twenty-nine years of continuous development by no fewer than 579 people

(32)^ Stephen J., Turnbull. XEmacs vs. GNU Emacs. 2012102

(33)^ XEmacs is Dead. Long Live XEmacs!. 2016612

(34)^ FrontPage - Meadow WikiArchived 2012-02-16 at the Wayback Machine.

(35)^ SXEmacs Website.  Sxemacs.org (20091011). 2009118

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

(37)^ NotGNU Emacs Editor (Author's Official Download Site).  Notgnu.org (2004115). 2009118

(38)^ Zile home page. 2016620

(39)^ QEmacs Homepage.  Fabrice.bellard.free.fr. 2009118

(40)^ Christian Jullien. (1986). EmACT on sourceforge.  Christian Jullien. 20111231

(41)^ AMACS source. 2016612

(42)^ apple2.org. 2016612

(43)^ Cocoa text system. 2016612

(44)^ SublemacsPro plugin for Sublime Text. 2016612

(45)^ Init file. 2016620

(46)^ https://elpa.gnu.org/packages/

(47)^ Saint IGNUcius - Richard Stallman. 2015129

(48)^ The unabridged selective transcript of Richard M Stallman's talk at the ANU. 2015129

(49)^ alt.religion.emacs newsgroup

(50)^ Saint IGNUcius - Richard Stallman

(51)^ abHow To Avoid The Emacs Pinky Problem.  Xahlee.org. 2009118

(52)^ EmacsWiki: Repeated Strain Injury. 2015129

(53)^ Moving The Ctrl Key.  EmacsWiki. 2009118

(54)^ EmacsWiki: Ace Jump. 2015129

(55)^ Spacemacs. 2015420

(56)^ BayleShanks (2009107). Sticky Modifiers.  EmacsWiki. 2009118

(57)^ Viper Mode.  EmacsWiki. 2009118

(58)^ At Home Modifier by Evdev. 2015414

(59)^ Why Emacs's Keyboard Shortcuts are Painful. 2016612

(60)^ VAXen.  Catb.org. 2009118

外部リンク