Emacs – Wikipedia

Familie von Texteditoren

Emacs oder EMACS ((Editor MACroS)[3][4][5] ist eine Familie von Texteditoren, die sich durch ihre Erweiterbarkeit auszeichnen.[6] Das Handbuch für die am weitesten verbreitete Variante,[7]GNU Emacs beschreibt es als “den erweiterbaren, anpassbaren, selbstdokumentierenden Echtzeit-Display-Editor”.[8] Die Entwicklung des ersten Emacs begann Mitte der 1970er Jahre und die Arbeit an seinem direkten Nachkommen, GNU Emacs, wird ab 2020 aktiv fortgesetzt[update].

Emacs verfügt über mehr als 10.000 integrierte Befehle. Über die Benutzeroberfläche kann der Benutzer diese Befehle zu Makros kombinieren, um die Arbeit zu automatisieren. Implementierungen von Emacs enthalten normalerweise einen Dialekt der Programmiersprache Lisp, der eine umfassende Erweiterungsfunktion bietet, mit der Benutzer und Entwickler neue Befehle und Anwendungen für den Editor schreiben können. Es wurden Erweiterungen geschrieben, um E-Mails, Dateien, Konturen und RSS-Feeds zu verwalten.[9] sowie Klone von ELIZA, Pong, Conways Leben, Schlange und Tetris.[10]

Das ursprüngliche EMACS wurde 1976 von David A. Moon und Guy L. Steele Jr. als Editor MACroS für den TECO-Editor geschrieben.[2][3][4][5][11] Es wurde von den Ideen der TECO-Makro-Editoren TECMAC und TMACS inspiriert.[12]

Die beliebteste und portierteste Version von Emacs ist GNU Emacs, die von Richard Stallman für das GNU-Projekt erstellt wurde.[13]XEmacs ist eine Variante, die 1991 von GNU Emacs abzweigte. GNU Emacs und XEmacs verwenden ähnliche Lisp-Dialekte und sind größtenteils miteinander kompatibel. Die Entwicklung von XEmacs ist inaktiv.

Emacs ist neben vi einer der beiden Hauptkonkurrenten in den traditionellen Herausgeberkriegen der Unix-Kultur. Emacs gehört zu den ältesten noch in Entwicklung befindlichen Free- und Open-Source-Projekten.[14]

Geschichte[edit]

Die Entwicklung von Emacs begann in den 1970er Jahren im MIT AI Lab, dessen PDP-6- und PDP-10-Computer das Betriebssystem Incompatible Timesharing System (ITS) verwendeten, das einen Standard-Zeileneditor namens Tape Editor and Corrector (TECO) enthielt. Im Gegensatz zu den meisten modernen Texteditoren verwendete TECO separate Modi, in denen der Benutzer entweder Text hinzufügte, vorhandenen Text bearbeitete oder das Dokument anzeigte. Man konnte Zeichen nicht direkt in ein Dokument einfügen, indem man sie in TECO eingab, sondern gab stattdessen ein Zeichen (‘i’) in der TECO-Befehlssprache ein, das ihn aufforderte, in den Eingabemodus zu wechseln und die erforderlichen Zeichen einzugeben. Während dieser Zeit wurde der Text bearbeitet wurde nicht auf dem Bildschirm angezeigt, und geben Sie schließlich ein Zeichen ein (), um den Editor wieder in den Befehlsmodus zu schalten. (Eine ähnliche Technik wurde verwendet, um eine Überschreibung zu ermöglichen.) Dieses Verhalten ähnelt dem des Programms ed.

Richard Stallman besuchte 1972 oder 1974 das Stanford AI Lab und sah das Labor E. Herausgeber, geschrieben von Fred Wright.[16] Er war beeindruckt vom intuitiven WYSIWYG-Verhalten (Was Sie sehen, ist was Sie bekommen) des Herausgebers, das seitdem das Standardverhalten der meisten modernen Texteditoren ist. Er kehrte zum MIT zurück, wo Carl Mikkelsen, ein Hacker im AI Lab, TECO einen kombinierten Anzeige- / Bearbeitungsmodus namens hinzugefügt hatte Control-R Dadurch konnte die Bildschirmanzeige jedes Mal aktualisiert werden, wenn der Benutzer einen Tastendruck eingab. Stallman implementierte diesen Modus erneut, um effizient zu arbeiten, und fügte dann dem TECO-Anzeigebearbeitungsmodus eine Makrofunktion hinzu, mit der der Benutzer jeden Tastendruck neu definieren konnte, um ein TECO-Programm auszuführen.[5]

E hatte eine weitere Funktion, die TECO fehlte: die Bearbeitung mit wahlfreiem Zugriff. TECO war ein seitensequenzieller Editor, der zum Bearbeiten von Papierbändern auf dem PDP-1 entwickelt wurde und normalerweise nur jeweils eine Seite in der Reihenfolge der Seiten in der Datei bearbeiten konnte. Anstatt den Ansatz von E zu übernehmen, die Datei für den Seitenzugriff auf der Festplatte zu strukturieren, modifizierte Stallman TECO, um große Puffer effizienter zu handhaben, und änderte seine Dateiverwaltungsmethode, um die gesamte Datei als einen einzigen Puffer zu lesen, zu bearbeiten und zu schreiben. Fast alle modernen Redakteure verwenden diesen Ansatz.

Die neue Version von TECO wurde im AI Lab schnell populär und sammelte bald eine große Sammlung von benutzerdefinierten Makros, deren Namen oft endeten MAC oder MACS, was für stand Makro. Zwei Jahre später übernahm Guy Steele das Projekt, die verschiedenen Makros in einem einzigen Satz zu vereinen.[17] Die abgeschlossene Implementierung von Steele und Stallman umfasste Funktionen zum Erweitern und Dokumentieren des neuen Makrosatzes.[5] Das resultierende System hieß EMACS und stand für Makros bearbeiten oder alternativ, E mit MACroS. Stallman wählte den Namen Emacs “weil wurde zu diesem Zeitpunkt nicht als Abkürzung für ITS verwendet. “[18] Ein apokryphischer Hacker-Koan behauptet, das Programm sei nach ihm benannt worden Emack & Bolio’s, eine beliebte Eisdiele in Cambridge.[19] Das erste betriebsbereite EMACS-System existierte Ende 1976.[20]

Stallman sah ein Problem in zu vielen Anpassungen und de facto Gabeln und bestimmte Nutzungsbedingungen einstellen.[citation needed] Er schrieb später:[20]

EMACS wurde auf der Grundlage des gemeinsamen Teilens verteilt, was bedeutet, dass alle Verbesserungen an mich zurückgegeben werden müssen, um aufgenommen und verteilt zu werden.

Die ursprünglichen Emacs liefen wie TECO nur auf dem PDP-10 mit ITS. Sein Verhalten unterschied sich ausreichend von dem von TECO, so dass es als eigenständiger Texteditor angesehen werden konnte, und es wurde schnell zum Standard-Bearbeitungsprogramm auf ITS. Mike McMahon portierte Emacs von ITS auf die Betriebssysteme TENEX und TOPS-20. Andere Autoren früherer Versionen von Emacs sind Kent Pitman, Earl Killian und Eugene Ciccarelli. Bis 1979 war Emacs der Hauptredakteur im AI-Labor des MIT und im Labor für Informatik.[21]

Implementierungen[edit]

Frühe Implementierungen[edit]

In den folgenden Jahren schrieben Programmierer eine Vielzahl von Emacs-ähnlichen Editoren für andere Computersysteme. Dazu gehörten EINE (EINE ist kein EMACS) und ZWEI[22] ((ZWEI war anfangs EINE), die von Mike McMahon und Daniel Weinreb sowie Sine (für die Lisp-Maschine geschrieben wurden)Sinus ist nicht eine),[23] das von Owen Theodore Anderson geschrieben wurde. Weinrebs EINE war der erste Emacs, der in Lisp geschrieben wurde. 1978 schrieb Bernard Greenberg Multics Emacs fast ausschließlich in Multics Lisp im Cambridge Information Systems Lab von Honeywell. Multics Emacs wurde später von Richard Soley, der den NILE Emacs-ähnlichen Editor für das NIL-Projekt entwickelte, und von Barry Margolin gepflegt. Viele Versionen von Emacs, einschließlich GNU Emacs, verwendeten später Lisp als Erweiterungssprache.

James Gosling, der später NeWS und die Programmiersprache Java erfand, schrieb 1981 Gosling Emacs. Gosling Emacs, der erste Emacs-ähnliche Editor, der unter Unix ausgeführt wurde, wurde in C geschrieben und verwendete Mocklisp, eine Sprache mit Lisp-ähnlicher Syntax eine Erweiterungssprache.

Frühe Anzeigen für Computer Corporation of America CCA EMACS (Steve Zimmerman).[24] erschien 1984.[25] 1985 Vergleiche mit GNU Emacs, als es herauskam, erwähnten kostenlos gegen 2.400 $.[26][irrelevant citation]

GNU Emacs[edit]

Richard Stallman begann 1984 mit der Arbeit an GNU Emacs, um eine freie Software-Alternative zu den proprietären Gosling Emacs zu entwickeln. GNU Emacs basierte ursprünglich auf Gosling Emacs, aber Stallmans Ersatz seines Mocklisp-Interpreters durch einen echten Lisp-Interpreter erforderte, dass fast der gesamte Code neu geschrieben wurde. Dies war das erste Programm, das vom aufstrebenden GNU-Projekt veröffentlicht wurde. GNU Emacs ist in C geschrieben und bietet Emacs Lisp, ebenfalls in C implementiert, als Erweiterungssprache an. Version 13, die erste öffentliche Veröffentlichung, wurde am 20. März 1985 veröffentlicht. Die erste weit verbreitete Version von GNU Emacs war Version 15.34, die später im Jahr 1985 veröffentlicht wurde. Frühere Versionen von GNU Emacs wurden als nummeriert 1.xx., wobei die Anfangsziffer die Version des C-Kerns angibt. Das 1 wurde nach Version 1.12 gelöscht, da angenommen wurde, dass sich die Hauptnummer niemals ändern würde, und daher die Nummerierung übersprungen wurde 1 zu 13.[27] Im September 2014 wurde auf der Mailingliste von GNU emacs-devel bekannt gegeben, dass GNU Emacs eine Strategie für eine schnelle Veröffentlichung verfolgen und die Versionsnummern in Zukunft schneller steigen werden.[28]

GNU Emacs wurde später auf Unix portiert. Es bot mehr Funktionen als Gosling Emacs, insbesondere ein Lisp mit vollem Funktionsumfang als Erweiterungssprache, und ersetzte bald Gosling Emacs als de facto Unix Emacs Editor. Markus Hess nutzte eine Sicherheitslücke im E-Mail-Subsystem von GNU Emacs aus, als er 1986 den Superuser-Zugriff auf Unix-Computer erhielt.[29]

Der größte Teil der GNU Emacs-Funktionalität wird über eine Skriptsprache namens Emacs Lisp implementiert. Da etwa 70% von GNU Emacs in der Elisp-Erweiterungssprache geschrieben sind,[30] Man muss nur den C-Kern portieren, der den Elisp-Interpreter implementiert. Dies macht das Portieren von Emacs auf eine neue Plattform erheblich weniger schwierig als das Portieren eines äquivalenten Projekts, das nur aus nativem Code besteht.

Die Entwicklung von GNU Emacs war bis 1999 relativ abgeschlossen und wurde als Beispiel für die Kathedrale Entwicklungsstil in Die Kathedrale und der Basar. Das Projekt hat seitdem eine öffentliche Entwicklungs-Mailingliste und einen anonymen CVS-Zugang eingeführt. Die Entwicklung fand bis 2008 in einem einzigen CVS-Trunk statt und wurde dann auf das Bazaar DVCS umgestellt. Am 11. November 2014 wurde die Entwicklung auf Git verlagert.[31]

Richard Stallman ist der Hauptbetreuer von GNU Emacs geblieben, aber er hat sich zeitweise von der Rolle zurückgezogen. Stefan Monnier und Chong Yidong waren von 2008 bis 2015 Betreuer.[32][33] John Wiegley wurde 2015 nach einem Treffen mit Stallman am MIT zum Betreuer ernannt.[34] Seit Anfang 2014 hat GNU Emacs im Laufe seiner Geschichte 579 einzelne Committer.[35]

XEmacs[edit]

Lucid Emacs, basierend auf einer frühen Alpha-Version von GNU Emacs 19, wurde ab 1991 von Jamie Zawinski und anderen bei Lucid Inc. entwickelt. Eine der bekanntesten frühen Gabeln in der Entwicklung freier Software trat auf, als die Codebasen der beiden Emacs-Versionen auseinander gingen und die einzelnen Entwicklungsteams stellten die Bemühungen ein, sie wieder zu einem einzigen Programm zusammenzuführen.[36] Lucid Emacs wurde inzwischen in XEmacs umbenannt. Die Entwicklung ist derzeit inaktiv. Die neueste stabile Version 21.4.22 wurde im Januar 2009 veröffentlicht (während 2013 eine Beta veröffentlicht wurde), während GNU Emacs viele frühere XEmacs-Funktionen implementiert hat.[37][better source needed]

Andere Gabeln von GNU Emacs[edit]

Andere bemerkenswerte Gabeln sind:

  • Aquamacs – basierend auf GNU Emacs (Aquamacs 3.2 basiert auf GNU Emacs Version 24 und Aquamacs 3.3 basiert auf GNU Emacs Version 25), das sich auf die Integration in die Apple Macintosh-Benutzeroberfläche konzentriert
  • Meadow – eine japanische Version für Microsoft Windows[38]
  • SXEmacs – Steve Youngs ‘Gabel von XEmacs[39]

Verschiedene Emacs-Editoren[edit]

In der Vergangenheit haben sich Projekte zur Herstellung kleiner Versionen von Emacs vermehrt. GNU Emacs war ursprünglich auf Computer mit einem flachen 32-Bit-Adressraum und mindestens 1 MiB RAM ausgerichtet.[40] Solche Computer waren in den 1980er Jahren High-End-Workstations und Minicomputer, und dies erforderte kleinere Neuimplementierungen, die auf gängiger PC-Hardware ausgeführt werden konnten. Heutige Computer verfügen über mehr als genug Leistung und Kapazität, um diese Einschränkungen zu beseitigen. In jüngerer Zeit wurden jedoch kleine Klone entwickelt, die auf Softwareinstallationsdisketten oder auf weniger leistungsfähiger Hardware passen.[41]

Andere Projekte zielen darauf ab, Emacs in einem anderen Lisp-Dialekt oder einer anderen Programmiersprache zu implementieren. Obwohl nicht alle noch aktiv gewartet werden, umfassen diese Klone:

  • MicroEMACS, das ursprünglich von Dave Conroy geschrieben und von Daniel Lawrence weiterentwickelt wurde und in vielen Variationen existiert.
  • mg, ursprünglich MicroGNUEmacs genannt, und später mg2a, ein gemeinfreier Ableger von MicroEMACS, der GNU Emacs ähnlicher werden soll. Jetzt standardmäßig unter OpenBSD installiert.
  • JOVE (Jonathans eigene Version von Emacs), Jonathan Paynes nicht programmierbare Emacs-Implementierung für UNIX-ähnliche Systeme.
  • MINCE (MINCE ist nicht vollständig Emacs), eine Version für CP / M und später DOS von Mark of the Unicorn. MINCE entwickelte sich zu Final Word, das schließlich zum Textverarbeitungsprogramm von Borland Sprint wurde.
  • Perfect Writer, eine von MINCE abgeleitete CP / M-Implementierung, die um 1982 als Standard-Textverarbeitungsprogramm mit den frühesten Versionen von Kaypro II und Kaypro IV enthalten war. Es wurde später mit dem Kaypro 10 als Alternative zu WordStar bereitgestellt.
  • Freemacs, eine DOS-Version, die eine Erweiterungssprache verwendet, die auf der Erweiterung von Textmakros basiert und innerhalb der ursprünglichen 64-KB-Speichergrenze liegt.
  • Zile. Zile war ein rekursives Akronym für Z.ile ichs L.ossy E.Macs,[42] Das Projekt wurde jedoch in Lua umgeschrieben und enthält nun die Erweiterung als Zile Implements Lua Editors. Der neue Zile enthält weiterhin eine Implementierung von Emacs in Lua namens Zemacs. Es gibt auch eine Implementierung von vi namens Zi.
  • Zmacs für die MIT Lisp Machine und ihre Nachkommen, implementiert in ZetaLisp.
  • Climacs, eine von Zmacs beeinflusste Variante, die in Common Lisp implementiert ist.
  • Epsilon,[43] ein Emacs-Klon von Lugaru Software. In der Version sind Versionen für DOS, Windows, Linux, FreeBSD, Mac OS X und O / S 2 enthalten. Es verwendet eine Nicht-Lisp-Erweiterungssprache mit C-Syntax und eine sehr frühe gleichzeitige Implementierung des Befehls-Shell-Puffers unter dem Single-Tasking-MS-DOS.
  • PceEmacs ist der Emacs-basierte Editor für SWI-Prolog.
  • Amacs, eine Apple II ProDOS-Version von Emacs, die in der 6502-Assembly von Brian Fox implementiert wurde.[44][45]
  • Hemlock, ursprünglich in Spice Lisp geschrieben, dann Common Lisp. Ein Teil von CMU Common Lisp. Beeinflusst von Zmacs. Später von Lucid Common Lisp (als Helix), LispWorks und Clozure CL-Projekten gegabelt. Es gibt auch ein tragbares Hemlock-Projekt, das darauf abzielt, eine Hemlock bereitzustellen, die auf mehreren Common Lisp-Implementierungen ausgeführt wird.
  • umacs,[46] eine Implementierung unter OS-9
  • edwin, ein Emacs-ähnlicher Texteditor, der im MIT / GNU-Schema enthalten ist.

Editoren mit Emacs-Emulation[edit]

Eigenschaften[edit]

Emacs ist in erster Linie ein Texteditor und wurde zum Bearbeiten von Textteilen entwickelt. Es kann jedoch Dokumente wie ein Textverarbeitungsprogramm formatieren und drucken, indem es mit externen Programmen wie LaTeX, Ghostscript oder einem Webbrowser verbunden wird. Emacs bietet Befehle zum Bearbeiten und differenziellen Anzeigen semantischer Texteinheiten wie Wörter, Sätze, Absätze und Quellcodekonstrukte wie Funktionen. Es verfügt auch über Tastaturmakros zum Ausführen benutzerdefinierter Stapel von Bearbeitungsbefehlen.

GNU Emacs ist ein Echtzeitanzeige Editor, da seine Änderungen auf dem Bildschirm angezeigt werden, sobald sie auftreten. Dies ist das Standardverhalten moderner Texteditoren, aber EMACS war eines der frühesten, das dies implementierte. Die Alternative besteht darin, einen eindeutigen Befehl zum Anzeigen von Text auszugeben (z. B. nach dem Ändern). Dies erfolgt in Zeileneditoren wie ed (Unix), ED (CP / M) und Edlin (MS-DOS).

Allgemeine Architektur[edit]

Fast alle Funktionen in Emacs, einschließlich grundlegender Bearbeitungsvorgänge wie das Einfügen von Zeichen in ein Dokument, werden durch Funktionen erreicht, die in einem Dialekt der Programmiersprache Lisp geschrieben sind. Der in GNU Emacs verwendete Dialekt ist als Emacs Lisp (ELisp) bekannt. Die ELisp-Schicht befindet sich auf einem stabilen Kern aus Basisdiensten und Plattformabstraktion, die in der Programmiersprache C geschrieben sind. In dieser Lisp-Umgebung können Variablen und Funktionen geändert werden, ohne dass Emacs neu kompiliert oder neu gestartet werden muss. Die meisten Konfigurationen werden in Variablen gespeichert und durch einfaches Ändern der Variablenwerte geändert.

Die Hauptdatenbearbeitungsdatenstruktur wird aufgerufen Puffer Text mit zusätzlichen Attributen enthalten; Die wichtigsten sind: Punkt (Cursorposition) und Kennzeichen (Ein anderer Ort, der den ausgewählten abgrenzt Region zusammen mit dem Punkt), der Name der Datei Besuch (falls zutreffend) und lokale Werte von ELisp-Variablen, die für den Puffer spezifisch sind. Solche lokalen Werte geben insbesondere die Menge der aktiven an Modi (genau eins Hauptmodus[clarification needed] In der Regel wird der Editor an den Inhaltstyp des Puffers (wie ELisp, C, HTML usw.) und an eine beliebige Anzahl von Puffern angepasst Nebenmodi[clarification needed] Steuerung des Verhaltens anderer Editoren unabhängig vom Inhaltstyp). Jede Interaktion mit dem Editor (wie Tastendruck oder Klicken einer Maustaste) wird durch Ausführen von Elisp-Code realisiert, normalerweise a BefehlDies ist eine Funktion, die explizit für die interaktive Verwendung entwickelt wurde. Schlüssel können beliebig neu definiert werden und Befehle können auch über den Namen aufgerufen werden. Einige Befehle werten beliebigen Elisp-Code aus Puffern aus (z eval-region oder eval-buffer).

Puffer werden in angezeigt FensterDies sind gekachelte Teile des Terminalbildschirms oder des GUI-Fensters (a genannt) Rahmen in Emacs Begriffen; mehrere Frames sind möglich). Je nach Konfiguration enthalten Fenster Bildlaufleisten, Zeilennummern, manchmal eine Kopfzeile, um die Navigation zu vereinfachen, und a Moduszeile unten (normalerweise werden unter anderem der Puffername, die aktiven Modi und die Punktposition des Puffers angezeigt). Der untere Rand jedes Frames wird für Nachrichten (dann als “Echo-Bereich” bezeichnet) und Texteingabe für Befehle (dann als “Minibuffer” bezeichnet) verwendet.

Es können mehrere Fenster in demselben Puffer geöffnet werden, um beispielsweise verschiedene Teile eines Langtextes anzuzeigen, und mehrere Puffer können denselben Text gemeinsam nutzen, um beispielsweise verschiedene Hauptmodi in einer gemischtsprachigen Datei zu nutzen. Der Hauptmodus kann bei Bedarf auch manuell geändert werden M-x .

Anpassbarkeit[edit]

  • Tastenanschläge können in Makros aufgezeichnet und wiedergegeben werden, um komplexe, sich wiederholende Aufgaben zu automatisieren. Dies erfolgt häufig auf Ad-hoc-Basis, wobei jedes Makro nach der Verwendung verworfen wird, obwohl Makros später gespeichert und aufgerufen werden können.
  • Beim Start führt Emacs ein Emacs Lisp-Skript mit dem Namen aus ~ / .emacs (Neuere Versionen suchen auch nach ~ / emacs.el, ~ / .emacs.d / init.el, und ~ / .config / emacs / init.el.;;[49] Emacs führt den ersten aus, den es findet, und ignoriert den Rest. Diese persönliche Anpassungsdatei kann beliebig lang und komplex sein. Typische Inhalte sind jedoch:
    • Festlegen globaler Variablen oder Aufrufen von Funktionen, um beispielsweise das Emacs-Verhalten anzupassen (set-default-coding-systems 'utf-8)
    • Tastenkombinationen zum Überschreiben von Standardbindungen und zum Hinzufügen von Verknüpfungen für Befehle, die der Benutzer für zweckmäßig hält, aber standardmäßig keine Tastenkombination hat. Beispiel: (global-set-key (kbd "C-x C-b") 'ibuffer)
    • Laden, Aktivieren und Initialisieren von Erweiterungen (Emacs wird mit vielen Erweiterungen geliefert, aber standardmäßig werden nur wenige geladen.)
    • Konfigurieren Event-Hooks um beliebigen Code zu bestimmten Zeiten auszuführen, z. B. um den Quellcode nach dem Speichern eines Puffers automatisch neu zu kompilieren (after-save-hook)
    • Ausführen beliebiger Dateien, normalerweise, um eine zu lange Konfigurationsdatei in verwaltbare und homogene Teile aufzuteilen (~ / .emacs.d / und ~ / elisp / sind traditionelle Orte für diese persönlichen Skripte)
  • Das anpassen Mit der Erweiterung kann der Benutzer Konfigurationseigenschaften wie das Farbschema in Emacs auf benutzerfreundlichere Weise interaktiv festlegen als durch Festlegen von Variablen in .emacs: Es bietet Suche, Beschreibungen und Hilfetexte, Multiple-Choice-Eingaben, Zurücksetzen auf Standardeinstellungen, Änderung der laufenden Emacs-Instanz ohne erneutes Laden und andere Annehmlichkeiten, die den Einstellungen anderer Programme ähneln. Die benutzerdefinierten Werte werden in gespeichert .emacs (oder eine andere angegebene Datei) automatisch.
  • Themen, die sich auf die Auswahl der Schriftarten und Farben auswirken, werden als Elisp-Dateien definiert und über die Erweiterung “Anpassen” ausgewählt.

Selbstdokumentierend[edit]

Die ersten Emacs enthielten a Hilfe Bibliothek mit Dokumentation für jeden Befehl, jede Variable und jede interne Funktion. Aus diesem Grund haben Emacs-Befürworter die Software als beschrieben selbstdokumentierend , dass es dem Benutzer Informationen über seine normalen Funktionen und seinen aktuellen Zustand präsentiert. Jede Funktion enthält eine Dokumentationszeichenfolge, die dem Benutzer auf Anfrage angezeigt wird. Diese Vorgehensweise wurde anschließend auf Programmiersprachen wie Lisp, Java, Perl und Python übertragen. Dieses Hilfesystem kann Benutzer zum eigentlichen Code für jede Funktion führen, unabhängig davon, ob es sich um eine integrierte Bibliothek oder eine hinzugefügte Bibliothek eines Drittanbieters handelt.

Emacs hat auch ein eingebautes Tutorial. Emacs zeigt Anweisungen zum Ausführen einfacher Bearbeitungsbefehle und zum Aufrufen des Lernprogramms an, wenn es ohne zu bearbeitende Datei gestartet wird. Das Tutorial stammt von Stuart Cracraft und Richard Stallman.

Kultur[edit]

Kirche von Emacs[edit]

Das Kirche von Emacs, gegründet von Richard Stallman, ist eine Parodie-Religion, die für Emacs-Benutzer entwickelt wurde.[50] Während es sich auf vi als das bezieht Herausgeber des Tieres (vi-vi-vi ist 6-6-6 in römischen Ziffern), es widerspricht nicht der Verwendung von vi; Vielmehr nennt man es proprietäre Software Anathema. (“Die Verwendung einer kostenlosen Version von vi ist keine Sünde, sondern eine Buße.”[51]) Die Kirche von Emacs hat eine eigene Newsgroup, alt.religion.emacs,[52] das hat Beiträge, die vorgeben, diese Parodiereligion zu unterstützen. Unterstützer von vi haben einen Gegner geschaffen Kult von vi.

Stallman hat sich scherzhaft als bezeichnet St I GNU cius, ein Heiliger in der Kirche von Emacs.[53]

Emacs kleiner Finger[edit]

Es gibt Folklore, die eine umgangssprachlich als repetitiv belastete Verletzung bezeichnet Emacs kleiner Finger zu Emacs starker Abhängigkeit von Modifikatortasten,[54] Obwohl keine Studien durchgeführt wurden, um zu zeigen, dass Emacs mehr solche Probleme verursacht als andere tastaturlastige Computerprogramme.

Benutzer haben dies durch verschiedene Ansätze angegangen. Einige Benutzer empfehlen, einfach die beiden Steuertasten auf typischen PC-Tastaturen wie Umschalttasten zu verwenden, während Sie mit der Berührung tippen, um eine übermäßige Belastung des linken kleinen Fingers zu vermeiden. Eine ordnungsgemäße Verwendung der Tastatur verringert den RSI. [55] Zu den softwareseitigen Methoden gehören:[56]

  • Anpassen des Tastenlayouts, sodass der Steuerschlüssel mit dem Feststelltaste transponiert wird.[57] Ähnliche Techniken umfassen das Definieren der Feststelltaste als zusätzlichen Steuerschlüssel oder das Transponieren der Steuer- und Metatasten.Da diese Tasten jedoch immer noch mit demselben Finger gedrückt werden, können sie dennoch zu Emacs Pinky beitragen.[clarification needed]
  • Software wie xwrits oder die eingebaute Typ-Break-Modus In Emacs erinnert dies den Benutzer daran, regelmäßig geplante Pausen einzulegen.
  • Verwenden der ErgoEmacs-Tastenkombinationen (im Nebenmodus ergoemacs-mode).[58]
  • Anpassen des gesamten Tastaturlayouts, um statistisch häufige Emacs-Tasten an geeignetere Stellen zu verschieben.[59]
  • Pakete wie ace-jump-mode[60] oder Elisp-Erweiterungen, die ähnliche Funktionen wie die gestufte Navigation bieten, indem Sie zuerst nach einem Zeichen fragen und dann das Auftreten des Zeichens durch Zugriffstasten für die Cursorbewegung ersetzen.
  • evil-mode, eine fortschrittliche Vim-Emulationsschicht.
  • god-modeDies bietet einen ähnlichen Ansatz wie vim mit einem Modus zur Eingabe von Emacs-Befehlen ohne Modifizierertasten.
  • Verwendung des von Spacemacs angebotenen benutzerdefinierten Tastenlayouts, einem Projekt, bei dem Space Der Schlüssel wird als Hauptschlüssel zum Initiieren von Steuersequenzen verwendet. Das Projekt umfasst auch beide stark evil-mode und god-mode.[61]
  • StickyKeys, die Tastenfolgen in Tastenkombinationen umwandeln.[62]
  • Emacs ‘eingebaut viper-mode Dies ermöglicht die Verwendung des vi-Tastenlayouts für die grundlegende Textbearbeitung und des Emacs-Schemas für erweiterte Funktionen.[63]
  • Verleihung einer bequemeren Taste wie der Leertaste eine doppelte Rolle, sodass sie in Kombination mit anderen Tasten als Steuertaste fungiert. Ergonomische Tastaturen oder Tastaturen mit einer größeren Anzahl von Tasten neben der Leertaste, z. B. japanische Tastaturen, ermöglichen die Daumensteuerung auch anderer Modifizierertasten wie Meta oder Shift.[64]
  • Verwenden einer begrenzten ergonomischen Teilmenge von Tastenkombinationen und Zugreifen auf andere Funktionen durch Eingabe M-x . Mx selbst kann auch zurückprallt werden.
  • Emacs durch Spracheingabe fahren.

Zu den Hardwarelösungen gehören spezielle Tastaturen wie die konturierte Tastatur von Kinesis, mit der die Modifizierertasten so platziert werden können, dass sie leicht mit dem Daumen bedient werden können, oder die Microsoft Natural-Tastatur, deren große Modifizierertasten symmetrisch auf beiden Seiten der Tastatur angeordnet sind und mit denen gedrückt werden kann die Handfläche.[54] Fußpedale können ebenfalls verwendet werden.

Das Emacs kleiner Finger ist eine relativ junge Entwicklung. Die Space-Cadet-Tastatur, auf der Emacs entwickelt wurde, hatte übergroße Steuertasten, die sich neben der Leertaste befanden und mit dem Daumen leicht zu erreichen waren.[65]

Terminologie[edit]

Das Wort Emacs wird manchmal als pluralisiert Emacsenin phonetischer Analogie mit Boxen und VAXen, die sich auf verschiedene Emacs-Sorten beziehen.[66]

Siehe auch[edit]

Verweise[edit]

  1. ^ “Emacs Veröffentlichungstermine”.
  2. ^ ein b Zawinski, Jamie (21.06.2005) [1999]. “Emacs Timeline”. Abgerufen 11. August 2015.
  3. ^ ein b Greenberg, Bernard S. (1979). Multics Emacs: Geschichte, Design und Implementierung.
  4. ^ ein b c “GNU Emacs FAQ”.
  5. ^ ein b c d Adrienne G. Thompson. “MACSimizing TECO”.
  6. ^ “Eine Tutorial-Einführung in GNU Emacs”. Damit ein Editor als “Emacs” bezeichnet werden kann, muss er vollständig mit einer echten Programmiersprache erweiterbar sein, nicht nur mit einer Makrosprache.
  7. ^ “GNU Emacs Pocket Reference”. GNU Emacs ist das beliebteste und am weitesten verbreitete Mitglied der Emacs-Redaktionsfamilie.
  8. ^ “GNU Emacs Handbuch”. FSF. Abgerufen 24. November 2012.
  9. ^ “Wir stellen vor: Elfeed, einen Emacs Web Feed Reader”.
  10. ^ “Vergnügungen”. Wenn Sie frustriert sind, versuchen Sie schließlich, der berühmten Psychotherapeutin Eliza Ihre Probleme zu beschreiben. Mach einfach Mx Doktor.
  11. ^ Richard Stallman wird oft als ein anderer Mitschöpfer bezeichnet, aber wie Daniel Weinreb schrieb: “Der ursprüngliche (TECO-basierte) Emacs wurde von Guy L. Steele Jr. und David Moon erstellt und entworfen Stallman hat sich als Standard-Texteditor im AI-Labor etabliert und die Wartung übernommen. ” Moon selbst antwortete: “Alles wahr, soweit ich mich erinnern kann. Aber fairerweise muss ich sagen, dass Stallman Emacs stark verbessert hat, nachdem er es von Guy und mir” befreit “hat.” Sehen Weinreb, Dan (11. November 2007), “Widerlegung von Stallmans Geschichte über die Bildung von Symbolik und LMI”, Dan Weinrebs Blog: Software und Innovation, archiviert von das Original am 1. Januar 2009.
  12. ^ “Eine Geschichte von Emacs”. XEmacs Internals Manual. 2006-12-11. Abgerufen 2007-08-22.
  13. ^ Allombert, Bill. “Debian Popularity Contest”. Redaktionsbericht. Debian. Abgerufen 22. November 2011.
  14. ^ “Die 10 ältesten und bedeutendsten Open-Source-Programme”.
  15. ^ Raymond, Eric S.; Cameron, Debra; Rosenblatt, Bill (1996). GNU Emacs lernen, 2. Auflage. Sebastopol, CA: O’Reilly. S. 408–409. ISBN 1-56592-152-6.
  16. ^ Arthur Samuel (März 1980). “Essential E” (PDF). Abgerufen 2020-04-19.
  17. ^ “EMACS vs. vi: Der endlose heilige Krieg der Geeks“”. Archiviert von das Original am 26.11.2014. Abgerufen 2014-05-30. “EMACS als solches begann eigentlich als Standardprojekt”, schreibt Guy Steele per E-Mail
  18. ^ Stallman, Richard M. (1987). “Der EMACS-Vollbild-Editor”. GEWAND (Maj 1987). Lysator, Universität Linköping. S. 8–11. Abgerufen 2007-09-14.
  19. ^ Reynolds, Craig (10.02.1992). Wiseman, David G. (Hrsg.). “Der Emac Bolio Name Koan”. David G. Wiseman: Geschichten der Computerfolklore. Ein übermütiger Neuling sagte einmal zu Stallman: “Ich kann mir vorstellen, warum der Herausgeber Emacs heißt, aber warum heißt der Rechtfertiger Bolio?” Stallman antwortete eindringlich: Namen sind nur Namen, Emack & Bolio’s ist der Name einer beliebten Eisdiele in Boston. Keiner dieser Männer hatte etwas mit der Software zu tun. ‘ Seine Frage wurde beantwortet, doch der Neuling wollte nicht gehen, aber Stallman rief ihm zu: “Weder Emacs noch Bolio hatten etwas mit der Eisdiele zu tun.”[permanent dead link]
  20. ^ ein b Stallman, Richard (26. März 1981). EMACS: Der erweiterbare, anpassbare, selbstdokumentierende Anzeige-Editor (PDF) (Technischer Bericht). MIT AI Lab. AI Memo 519a. Abgerufen 2011-01-07.
  21. ^ Leigh Klotz (2007-08-29). “E-Mail zitiert in” Sei vorsichtig, worüber du Witze machst“”“”. Die New York Times. Abgerufen 2010-05-01.
  22. ^ “Kommentar von ZWEIs Autor Dan Weinreb”. Ich habe den zweiten Emacs aller Zeiten geschrieben: die Lisp-Maschinenimplementierung, deren Spezifikation “Mach was Stallmans PDP-10 (Original) Emacs macht” war, und bin dann von dort aus weitergegangen. Es gibt nur eine ganze Menge davon. Ich und Mike McMahon haben endlose Stunden gebraucht, um so viele Befehle zu implementieren, um ZWEI / Zmacs zu erstellen.
  23. ^ Owen Theodore Anderson (Januar 1979). “Das Design und die Implementierung eines displayorientierten Editor-Schreibsystems” (PDF). Abgerufen 2012-09-09.
  24. ^ Christopher Kelty; Mario Biagioli; Peter Jaszi; Martha Woodmansee (2015). Geistiges Eigentum herstellen und aufheben. Computer Corporation of America (CCA) EMACS, geschrieben von Steve Zimmerman
  25. ^ “Emacs”. 17. Dezember 2017.
  26. ^ “Unterschiede zwischen GNU Emacs und CCA Emacs. Copyyright”.
  27. ^ “Eine Geschichte von Emacs”.
  28. ^ emacs-devel msg 00872 (29.09.2014). Im Nachhinein hätte 24.3 25.1 und 24.4 26.1 heißen sollen. Das .N thingy sollte eigentlich nur für Bugfix-Releases aufbewahrt werden und weder 24.3, 24.4 noch das zuvor geplante 24.5 sind Bugfix-Releases.
  29. ^ Stoll, Clifford (1988). “Den schlauen Hacker verfolgen”. Mitteilungen der ACM. 31 (5): 484–497. doi:10.1145 / 42411.42412. S2CID 6956966.
  30. ^ “GNU Emacs”. Hub öffnen. Abgerufen 2017-11-25.
  31. ^ Raymond, Eric (2014-11-12). “Neues Git-Repository ist verfügbar”. Abgerufen 2017-11-25.
  32. ^ Stallman, Richard (22.02.2008). “Re: Auf der Suche nach einem neuen Emacs-Betreuer oder -Team”. gnu.org Mailingliste. Abgerufen 2017-11-25.
  33. ^ McNamara, Paul (2008-02-25). “Stallman über die Übergabe von GNU Emacs, seine Zukunft und die Bedeutung der Nomenklatur”. Netzwerkwelt. Abgerufen 2017-11-25.
  34. ^ Chirgwin, Richard (2015-11-05). “Emacs bekommt neuen Betreuer, als Richard Stallman sich abmeldet”. Das Register. Abgerufen 2017-11-25.
  35. ^ Raymond, Eric (29.03.2014). “Hässlichste … Repository … Konvertierung … aller Zeiten”. Abgerufen 2017-11-25. 29 Jahre kontinuierliche Entwicklung von nicht weniger als 579 Menschen
  36. ^ Stephen J., Turnbull. “XEmacs vs. GNU Emacs”. Abgerufen 2012-10-02.
  37. ^ “XEmacs ist tot. Es lebe XEmacs!”.
  38. ^ FrontPage – Wiesen-Wiki Archiviert 2012-02-16 an der Wayback-Maschine
  39. ^ “SXEmacs Website”. Sxemacs.org. 2009-10-11. Abgerufen 08.11.2009.
  40. ^ “Meine Lisp-Erfahrungen und die Entwicklung von GNU Emacs”. Damals, 1985, gab es Leute, die Ein-Megabyte-Maschinen ohne virtuellen Speicher hatten. Sie wollten GNU Emacs verwenden können. Das bedeutete, dass ich das Programm so klein wie möglich halten musste.
  41. ^ “GNU Zile (Zile ist verlustbehaftete Emacs) – Zusammenfassung”. Moderne Computer verfügen über mehr als genug Ressourcen, um einen vollständigen Emacs in Sekundenbruchteilen zu starten und auszuführen, und Emacs ist wahrscheinlich das, was Sie wollen. Zile ist ein kleiner, schneller und leistungsstarker Emacs-Klon. Es ist nützlich für Installationen mit geringem Platzbedarf (z. B. auf Diskette), Computer mit wenig Speicher oder schnelle Bearbeitungssitzungen, insbesondere auf Remotecomputern oder als anderer Benutzer, z. B. root.
  42. ^ “Zile Homepage”.
  43. ^ “Lugaru Software Homepage”.
  44. ^ “AMACS-Quelle”.
  45. ^ “apple2.org”.
  46. ^ Paul S. Dayan (1992). Der OS-9 Guru – 1: Die Fakten. Galactic Industrial Limited. ISBN 0-9519228-0-7.
  47. ^ “Kakaotext-System”.
  48. ^ “Einrichten von Tastenkombinationen für das Befehlsfenster und den Editor”. Mathworks-Blogs. 2007-05-11. Abgerufen 2019-08-18.
  49. ^ “Init file”.
  50. ^ “Heiliger IGNUcius – Richard Stallman”. Abgerufen 29. Januar 2015.
  51. ^ “Die ungekürzte selektive Abschrift von Richard M Stallmans Vortrag an der ANU”. Abgerufen 29. Januar 2015.
  52. ^ alt.religion.emacs Newsgroup
  53. ^ “Heiliger IGNUcius – Richard Stallman”. www.stallman.org. Abgerufen 27. März 2018.
  54. ^ ein b “Wie vermeide ich das Emacs Pinky Problem?”. Xahlee.org. Abgerufen 08.11.2009.
  55. ^ “Emacs: Warum Sie die Tasten {Feststelltaste, Steuerung} nicht tauschen sollten”. Bei der Touch-Eingabe werden Modifikatoren paarweise angezeigt, z. B. ⇧ Umschalttaste. Die akzeptierte ergonomische Art, Modifikatorkombinationen zu drücken, besteht darin, mit einer Hand die Modifikatortaste und mit der anderen die Buchstabentaste zu drücken. Durch die Verwendung von 2 Händen wird vermieden, dass die Muskeln mit einer Hand belastet werden.
  56. ^ “EmacsWiki: Wiederholte Belastungsverletzung”. Abgerufen 29. Januar 2015.
  57. ^ “Bewegen der Strg-Taste”. EmacsWiki. Abgerufen 08.11.2009.
  58. ^ “ErgoEmacs Homepage”. Abgerufen 2018-09-01.
  59. ^ “Keymacs Layout”.
  60. ^ “EmacsWiki: Ace Jump”. Abgerufen 29. Januar 2015.
  61. ^ “Spacemacs”. Abgerufen 2015-04-20.
  62. ^ BayleShanks (07.10.2009). “Sticky Modifiers”. EmacsWiki. Abgerufen 08.11.2009.
  63. ^ “Viper-Modus”. EmacsWiki. Abgerufen 08.11.2009.
  64. ^ “At Home Modifier von Evdev”. Abgerufen 2015-04-14.
  65. ^ “Warum Emacs ‘Tastaturkürzel schmerzhaft sind”.
  66. ^ “VAXen”. Catb.org. Abgerufen 08.11.2009.

Literaturverzeichnis[edit]

Externe Links[edit]