GNU Emacs

GNU EMACS
Emacs-logo.svg
GNU Emacs 26.2 screenshot.png
GNU EMACS 26.2 Läuft weiter Gnome 3
Originalautor (en) Richard Stallman
Entwickler (en) GNU -Projekt
Erstveröffentlichung 20. März 1985; Vor 37 Jahren
Stabile Version
28.1[1] Edit this on Wikidata / 4. April 2022
Vorschau -Version
28.0.92[2] Edit this on Wikidata / 13. März 2022
Repository
Geschrieben in EMACS Lisp, C[3]
Betriebssystem Unix-artig (GNU, Linux, Mac OS, BSDS, Solaris), Fenster, MS-DOS[4]
Plattform Plattformübergreifend
Verfügbar in Englisch
Typ Texteditor
Lizenz GPL-3.0-oder-Later
Webseite www.Gnu.org/Software/emacs/

GNU EMACS ist ein gratis Software Texteditor. Es wurde von erstellt von GNU -Projekt Gründer Richard Stallman. Gemeinsam mit anderen Sorten von EMACs, GNU EMACs ist mit a erweiterbar Turing vollständig Programmiersprache. GNU EMACS wurde als "der leistungsstärkste Texteditor, der heute verfügbar" bezeichnet wird.[5] Mit ordnungsgemäßer Unterstützung des zugrunde liegenden Systems kann GNU EMACs Dateien in mehreren Zeichensätzen anzeigen und konnten seit mindestens 1999 die meisten menschlichen Sprachen gleichzeitig anzeigen.[6] Während seiner gesamten Geschichte war GNU EMACs ein zentraler Bestandteil der GNU Projekt und ein Flaggschiff der gratis Software Bewegung.[7][8] GNU -EMACs werden manchmal als abgekürzt Gnumacsbesonders um es von anderen EMACS -Varianten zu unterscheiden.[9] Die Tag-Zeile für GNU-EMACs ist "der erweiterbare selbstdokumentierende Texteditor".[10]

Geschichte

Richard Stallman, Gründer der GNU -Projekt und Autor von GNU EMACs

1976 schrieb Stallman die ersten EMACs („Editor Makros“) und begann 1984 mit der Arbeit über GNU EMACs, um a zu produzieren. gratis Software Alternative zum Eigentum Gosling Emacs. GNU EMACS basierte zunächst auf Gosling -Emacs, Stallmans Ersatz seiner Mocklisp Dolmetscher Bei einem echten Lisp -Dolmetscher musste fast der gesamte Code umgeschrieben werden. Dies wurde das erste Programm, das vom entstehenden GNU -Projekt veröffentlicht wurde. GNU EMACS ist in C geschrieben und bietet EMACS Lisp, auch in C, als Erweiterungssprache implementiert. Version 13, die erste Veröffentlichung, wurde am 20. März 1985 erstellt. Ziffern Sie die Version des C -Kerns. Das "1" wurde nach Version 1.12 fallen gelassen, da angenommen wurde, dass sich die Hauptzahl nie ändern würde, und daher übersprungen sich die Hauptversion von "1" bis "13". Eine neue dritte Versionsnummer wurde hinzugefügt, um Änderungen durch Benutzerstellen darzustellen.[11] Im aktuellen Nummerierungsschema bedeutet eine Zahl mit zwei Komponenten eine Release -Version mit Entwicklungsversionen mit drei Komponenten.[12]

GNU EMACS wurde später auf die portiert Unix Betriebssystem. Es bot mehr Funktionen als Gosling-EMACs, insbesondere eine vollständige LISP als Erweiterungssprache, und ersetzte bald Gosling-Emacs als die de facto UNIX EMACS -Editor. Markus Hess nutzte einen Sicherheitsfehler in GNU Emacs 'E -Mail -Subsystem in seinem 1986er Cracking -Spree aus, in dem er gewann Superuser Zugriff auf UNIX -Computer.[13]

Obwohl Benutzer häufig Patches und ELISP -Code im net.emacs eingereicht haben Newsgroup, Die Teilnahme an der Entwicklung von GNU -EMACs war bis 1999 relativ eingeschränkt und wurde als Beispiel für den Entwicklungsstil "Kathedrale" verwendet Die Kathedrale und der Basar. Das Projekt hat inzwischen eine Mailingliste für öffentliche Entwicklung und anonym verabschiedet Lebenslauf Zugang. Die Entwicklung fand bis 2008 in einem einzigen CVS -Kofferraum statt und verwendet heute die Git[14] DVCs.

Richard Stallman ist der Hauptbetrieb von GNU EMACs geblieben, aber er hat sich zeitweise von der Rolle zurückgezogen. Stefan Monnier und Chong Yidong haben die Wartung seit 2008 überwacht.[15] Am 21. September 2015 kündigte Monnier an, dass er mit dem Feature -Einfrieren von EMACS 25 als Wartung wirksam zurücktreten würde.[16] Der langjährige Mitarbeiter John Wiegley wurde am 5. November 2015 als neuer Betreuer bekannt.[17]. Wiegley wurde im Juli 2016 von Eli Zaretskii begleitet[18]und Lars Ingebebrigtsen im September 2020.[19]

Lizenzierung

Die Bedingungen der GNU Allgemeine öffentliche Lizenz (GPL) Geben Sie an, dass der EMACS -Quellcode, einschließlich der C- und EMACS -LISP -Komponenten, frei zur Prüfung, Änderung und Umverteilung frei verfügbar ist.

Ältere Versionen der GNU-EMACS-Dokumentation erschienen unter einer Ad-hoc-Lizenz, die die Einbeziehung eines bestimmten Textes in eine geänderte Kopie erforderte. In dem GNU EMACS -Benutzerhandbuch zum Beispiel enthielt dies Anweisungen zum Erhalten von GNU -EMACs und Richard Stallmans Aufsatz Das GNU -Manifest. Die XEMACS -Handbücher, die beim Auftreten der Gabel von älteren GNU -EMACS -Handbüchern geerbt wurden, haben die gleiche Lizenz. Neuere Versionen der Dokumentation verwenden die GNU kostenlose Dokumentationslizenz mit "invariant GNU -Handbücher.

Für GNU -EMACs bleibt es wie viele andere GNU -Pakete weiter Urheberrechte © Holder führt einen geeigneten Haftungsausschluss oder eine Zuweisung ihres Urheberrechts an das aus Kostenlose Software -Stiftung. Fehlerbehebungen und kleinere Codebeiträge von weniger als 10 Zeilen sind ausgenommen. Diese Richtlinie ist vorhanden, damit die FSF die Software vor Gericht verteidigen kann, wenn es ist Copyleft Lizenz wird verletzt.

Im Jahr 2011 wurde festgestellt, dass GNU -EMACs zwei Jahre lang versehentlich einige Binärdateien ohne entsprechenden Quellcode veröffentlicht hatten, was dem beabsichtigten Geist der GPL entspricht.[20][21][22] Richard Stallman beschrieb diesen Vorfall als "Ein sehr schlechter Fehler",[23] was sofort behoben wurde. Die FSF verklagte keine nachgeschalteten Neuverteiler, die unwissentlich verletzt Die GPL durch Verteilung dieser Binärdateien.

Verwenden von GNU -EMACs

Multiple bearbeiten Dired Puffer in GNU -EMACs
Bearbeitung C Quellcode In GNU -Emacs
Bearbeiten und Kompilieren C ++ Code von GNU EMACs

Befehle

In seinem normalen Bearbeitungsmodus verhält sich GNU EMACs wie andere Texteditoren und ermöglicht es dem Benutzer, Zeichen mit den entsprechenden Tasten einzufügen und den Bearbeitungspunkt mit den Pfeiltasten zu verschieben. Fluchtschlüssel Sequenzen oder Drücken der Steuerschlüssel und/oder die Metaschlüssel, alt "Taste oder Superschlüssel in Verbindung mit einem regulären Schlüssel produziert Modifizierte Tastenanschläge Das ruft Funktionen aus der EMACS LISP -Umgebung auf. Befehle wie Save-Puffer und Save-Buffers-Kill-Emacs Kombinieren Sie mehrere modifizierte Tastenanschläge.

Einige GNU-EMACS-Befehle funktionieren, indem sie ein externes Programm aufrufen, z. GNU Compiler -Sammlung (GCC) Für die Programmkompilierung, das Parsen der Ausgabe des Programms und das Anzeigen des Ergebnisses in GNU -EMACs. EMACs unterstützt auch "minderwertige Prozesse"-verlangen Prozesse, die mit einem EMACS-Puffer interagieren. Dies wird zur Implementierung verwendet Shell-Mode, rennen a Unix Shell als minderwertiger Prozess sowie Read -E -druck -Schleife (Repl) Modi für verschiedene Programmiersprachen. Die Unterstützung von EMACS für externe Prozesse macht es zu einer attraktiven Umgebung für die interaktive Programmierung nach dem Sinne von Interisp oder Smalltalk.[24]

Benutzer, die bevorzugen IBM Common Benutzerzugriff-Stasten können verwenden Cua-ModeEin Paket, das ursprünglich ein Drittanbieter-Add-On war, aber seit Version 22 in GNU EMACs aufgenommen wurde.

Minibuffer

EMACS verwendet den "Minibuffer", normalerweise die Bottommost -Linie Dialogboxen In den meisten GUIs. Der Minibuffer enthält Informationen wie Text, die in einer Suche oder den Namen einer Datei zum Lesen oder Speichern zielen. Falls anwendbar, Befehlszeilenabschluss ist mit den Registerkarten- und Speicherschlüssel verfügbar.

Dateiverwaltung und Anzeige

EMACs hält Text in Datenstrukturen bekannt als Puffer. Puffer können auf dem Bildschirm angezeigt werden oder nicht, und alle Pufferfunktionen sind für beide zugänglich EMACS Lisp Programm und zur Benutzeroberfläche.[25] Der Benutzer kann neue Puffer erstellen und unerwünschte entlassen, und es können viele Puffer gleichzeitig existieren. Die Anzahl der Puffer -EMACs ist nicht obere Grenze für die Hardware -Speichergrenzen. Fortgeschrittene Benutzer können Hunderte von offenen Puffer verschiedener Typen in Bezug auf ihre aktuelle Arbeit sammeln.[26] EMACs können konfiguriert werden, um die Liste der geöffneten Puffer beim Beenden zu speichern und diese Liste wieder zu öffnen, wenn sie neu gestartet wird.[27]

Einige Puffer enthalten Text von geladen Textdateien, was der Benutzer bearbeiten und auf dauerhaften Speicher speichern kann. Diese Puffer sollen Dateien "besuchen". Puffer dienen auch dazu, andere Daten anzuzeigen, z. B. die Ausgabe von EMACS -Befehlen. Dired Verzeichnislisten, Dokumentationszeichenfolge, die in der Bibliothek "Hilfe" angezeigt werden, und Benachrichtigungsnachrichten, die in anderen Redakteuren in a angezeigt würden Dialogbox. Einige dieser Benachrichtigungen werden kurz im Minibuffer angezeigt, und GNU EMACs liefert a *Mitteilungen* Puffer, der die jüngsten Benachrichtigungen dieses Typs in der Geschichte hält. Wenn der Minibuffer für die Ausgabe von EMACs verwendet wird, wird er als "Echobereich" bezeichnet.[28] In eigenen Puffern werden noch Benachrichtigungen in Puffer angezeigt. Die maximale Länge der Nachrichten, die im Minibuffer angezeigt werden, ist natürlich konfigurierbar.

Puffer können auch als Eingangs- und Ausgangsbereiche für einen externen Prozess wie a dienen Hülse oder Wiederholung. Puffer, die EMACs selbst erzeugen Sternchen an jedem Ende, um von Benutzerpuffern zu unterscheiden. Die Liste der offenen Puffer wird selbst in dieser Art von Puffer angezeigt.

Die meisten EMACS -Schlüsselsequenzen bleiben in jedem Puffer funktional. Zum Beispiel das Standard-Strg-S ich suche Funktion kann verwendet werden, um Dateinamen in Dired -Puffer zu durchsuchen, und die Dateiliste kann genau wie jeder andere Puffer in einer Textdatei gespeichert werden. Dired -Puffer können in einen beschreibbaren Modus umgestellt werden, in dem Dateinamen und Attribute text bearbeitet werden können. Wenn der Puffer gespeichert ist, werden die Änderungen an das Dateisystem geschrieben. Auf diese Weise können mehrere Dateien mithilfe der Such- und Ersatzfunktionen von EMACs umbenannt werden. Wenn so ausgestattet ist, wird EMACs angezeigt Bilddateien in Puffern. EMACs ist binär sicher und 8-Bit sauber.[29]

EMACs können den Bearbeitungsbereich in separate nicht überlappende Abschnitte "Windows" aufteilen, eine Funktion, die seit 1975 verfügbar ist und die grafische Benutzeroberfläche bei der gemeinsamen Verwendung vorliegt. In der EMACS -Terminologie ähneln "Windows" dem, was andere Systeme rufen. "Rahmen" oder "Scheiben" - Ein rechteckiger Teil des Programms des Programms, der miteinander aktualisiert und interagiert werden kann. Jedes EMACS -Fenster hat ein Statusleiste Die "Moduszeile" bezeichnet, die standardmäßig am unteren Rand des Fensters angezeigt wird. EMACS-Fenster sind sowohl im text-terminalen als auch in grafischen Modi verfügbar und ermöglichen es, dass mehr als einen Puffer oder mehrere Teile eines Puffer gleichzeitig angezeigt werden. Häufige Anwendungen sind die Anzeige a Dired Puffer zusammen mit dem Inhalt von Dateien im aktuellen Verzeichnis (es gibt spezielle Modi, mit denen der Dateipuffer der in DIRED hervorgehobenen Datei folgt), um das anzuzeigen Quellcode eines Programms in einem Fenster, während ein anderer a zeigt Hülse Puffer mit den Ergebnissen des Zusammenstellens des Programms, um einen Debugger zusammen mit einem Shellpuffer auszuführen, das das Programm ausführt, um an Code zu arbeiten, während er a angezeigt wird Mann Seite oder andere Dokumentation (möglicherweise über die geladen Weltweites Netz Verwenden eines der integrierten Webbrowser von EMACs) oder einfach mehrere Dateien zum Bearbeiten anzuzeigen, z. B. einen Header zusammen mit seiner Implementierungsdatei für C-basierte Sprachen. Außerdem gibt es da Follow-Mode, ein kleiner Modus, in dem Fenster ketten, um nicht überlappende Teile eines Puffers anzuzeigen. Verwendung Follow-ModeEine einzelne Datei kann in mehreren Side-by-Side-Fenstern angezeigt werden, die beim Scrollen angemessen aktualisieren. Darüber hinaus unterstützt EMACs einen Puffer "Verengen", um nur einen Teil einer Datei mit der oberen/unteren Puffernavigationsfunktionalität und der Puffergrößenberechnungen anzuzeigen, die nur den ausgewählten Bereich widerspiegeln.

EMACS -Fenster sind gefliest und kann nicht "über" oder "unter" ihre Gefährten erscheinen. EMACs können mehrere "Frames" starten, die als individuell angezeigt werden Fenster in einer grafischen Umgebung. An einem Textanschluss werden mehrere Frames angezeigt, um das gesamte Terminal zu füllen, und können mit den Standard -EMACS -Befehlen umgeschaltet werden.[30]

Hauptmodi

GNU -EMACs können verschiedene Textarten anzeigen oder bearbeiten und sein Verhalten durch Eingabe anpassen hinzufügen Auf Modi genannt "Hauptmodi". Es gibt wichtige Modi für viele verschiedene Zwecke, einschließlich der Bearbeitung gewöhnlicher Textdateien, die Quellcode von vielen Markup und Programmiersprachensowie Anzeige Webseiten, Verzeichnislisten und andere Systeminformationen. Jeder Hauptmodus umfasst ein EMACS -LISP -Programm, das den Editor so erweitert, dass sie sich bequem für den angegebenen Texttyp verhalten. Hauptmodi liefern normalerweise einige oder alle folgenden gängigen Merkmale:

  • Syntax -Hervorhebung ("Schriftart"): Kombinationen von Schriftarten und Farben, als "Gesichter" bezeichnet,[31] das unterscheidet zwischen Dokumentelementen wie z. Schlüsselwörter und Kommentare.
  • Automatische Eindrücke zur Aufrechterhaltung einer konsistenten Formatierung innerhalb einer Datei.
  • Das automatische Einfügen von Elementen, die durch die Struktur des Dokuments erforderlich sind, wie Räume, Newlines und Klammern.
  • Spezielle Bearbeitungsbefehle wie Befehle, um zum Anfang oder zum Ende einer Funktion zu springen, während Sie eine Programmierdatei oder -befehle bearbeiten, um Dokumente zu validieren oder Schluss -Tags beim Arbeiten mit Markup -Sprachen wie z. Xml.

Kleinere Modi

Die Verwendung von "kleinen Modi" ermöglicht eine weitere Anpassung. Ein GNU -EMACS -Bearbeitungspuffer kann jeweils nur einen Hauptmodus verwenden, aber mehrere kleinere Modi können gleichzeitig funktionieren. Diese können direkt auf Dokumenten arbeiten, da der Hauptmodus für die C -Programmiersprache für jeden der beliebten SEPTIGEN MENTIGE MENSCHEN definiert Einrückungsstileoder sie können die Bearbeitungsumgebung verändern. Beispiele für letztere umfassen einen Modus, der die Möglichkeit ergibt, Änderungen der Fensterkonfiguration rückgängig zu machen, und eine Überprüfung der Syntax auf der Fliege. Es gibt auch einen kleinen Modus, in dem mehrere Hauptmodi in einer einzelnen Datei verwendet werden können, um ein Dokument zu bearbeiten, in dem mehrere Programmiersprachen eingebettet sind.

"Batch -Modus"

GNU -EMACs unterstützt die Fähigkeit, sie als Dolmetscher für die zu verwenden EMACS Lisp Sprache, ohne die Benutzeroberfläche des Texteditors anzuzeigen. Im Stapelmodus wird die Benutzerkonfiguration nicht geladen und das Terminal unterbrechen Die Charaktere C-C und C-Z haben ihren üblichen Effekt, das Programm zu verlassen oder die Ausführung zu suspendieren, anstatt EMACS-Schlüsselbindungen aufzurufen. GNU EMACS hat Befehlszeilenoptionen Um entweder eine Datei zum Laden und Ausführen anzugeben, oder eine EMACS -LISP -Funktion kann aus der Befehlszeile übergeben werden. EMACs starten, führen die übergegebene Datei oder Funktion aus, drucken Sie die Ergebnisse und beenden Sie dann.[32] Das Shebang Linie #!/usr/bin/emacs --Skript Ermöglicht die Erstellung von eigenständigen Skripten in EMACS Lisp.[33] Der Batch -Modus ist kein EMACS -Modus an sichbeschreibt aber einen alternativen Ausführungsmodus für das EMACS -Programm.

Anleitungen

GNU EMACS -Handbuch (Cover Art von Etienne Suvasa; Cover -Design von Matt Lee)

Abgesehen von der integrierten Dokumentation hat GNU EMACS eine detaillierte Handbuch.[34] Eine elektronische Kopie der GNU EMACS -Handbuch, geschrieben von Richard Stallman, wird mit GNU-EMACs gebündelt und kann mit dem Einbau betrachtet werden die Info Browser. Zwei zusätzliche Handbücher, die EMACS Lisp Referenzhandbuch von Bil Lewis, Richard Stallman und Dan Laliberte und Eine Einführung in die Programmierung in EMACS Lisp durch Robert Chassell, sind inklusive. Alle drei Handbücher werden auch in Buchform von der veröffentlicht Kostenlose Software -Stiftung. Das Xemacs -Handbuch ähnelt dem GNU EMACS -Handbuch, von dem es gleichzeitig gabt, als die Xemacs -Software aus GNU -Emacs gabt.

Internationalisierung

GNU EMACS unterstützt viele Alphabete, Skripte, Schreibsysteme und kulturelle Konventionen und bietet bereit Rechtschreibprüfung für viele Sprachen, indem sie externe Programme anrufen wie z. Ich buchstabiere. Version 24 Support für bidirektionale Texte und rechts und rechts von Links hinzugefügt Schreibrichtung Für Sprachen wie Arabisch, Persisch und Hebräisch.

Viele Zeichenkodierung Systeme, einschließlich UTF-8, sind unterstützt. GNU EMACS verwendet UTF-8 für seine Codierung als GNU 23, während frühere Versionen ihre eigene Codierung intern verwendeten und Konvertierung bei Last und Speichern durchführten. Die von XEMACS verwendete interne Codierung ähnelt der von GNU -EMACs, unterscheidet sich jedoch im Detail.

Die GNU EMACS -Benutzeroberfläche stammt aus Englisch und wurde mit Ausnahme des Anfänger -Tutorials in keiner anderen Sprache übersetzt.

Ein Subsystem namens Emacspeak Ermöglicht es sehbehinderte und blinde Benutzer, den Editor durch Audio -Feedback zu steuern.

Erweiterbarkeit

Gnu emacs mit Auctex, eine Reihe von Werkzeugen zur Bearbeitung Tex und Latex Unterlagen

Das Verhalten von GNU-EMACs kann durch Einbeziehung von EMACS-LISP-Programmen, die neue Befehle, neue Puffermodi, neue Keymaps, Befehlszeilenoptionen hinzufügen, fast ohne Grenzwert erweitert und erweitert werden.[35] usw. Viele Erweiterungen, die Benutzerfunktionen bieten, definieren einen Hauptmodus (entweder für einen neuen Dateityp oder um eine nicht-textbearbeitete Benutzeroberfläche zu erstellen). Andere definieren nur Befehle oder kleinere Modi oder bieten Funktionen, die eine andere Erweiterung verbessern.

Viele Erweiterungen werden mit der GNU -EMACS -Installation gebündelt. Andere wurden früher als lose Dateien heruntergeladen (die Usenet Newsgroup gnu.emacs.sources war ein traditionelles Vertriebsmittel), aber seit Version 24 wurde eine Entwicklung von verwalteten Paketen und Paket-Download-Websites durchgeführt miteinander ausgehen. Die Liste der verfügbaren Pakete wird selbst in einem EMACS -Puffer angezeigt, der auf eingestellt ist Paketmodus Hauptmodus.

Bemerkenswerte Beispiele sind:

Leistung

GNU -EMACs lief oft merklich langsamer als konkurrierende Textredakteure auf den Systemen, in denen es zum ersten Mal implementiert wurde, weil das Laden und Interpretation seines LISP-basierten Codes verursacht einen Leistungsaufwand. Moderne Computer sind leistungsstark genug, um GNU -EMACs ohne Verlangsamungen auszuführen, aber Versionen vor 19.29 (1995 veröffentlicht) konnten Dateien nicht mehr als 8 MB bearbeiten. Die Größengrößengrenze wurde in aufeinanderfolgenden Versionen erhoben, und 32 Bit Versionen nach GNU EMACS 23.2 können Dateien mit einer Größe von bis zu 512 MB bearbeiten. EMACs, die auf einer 64-Bit-Maschine zusammengestellt wurden, können viel größere Puffer verarbeiten.[41]

Während EMACs hauptsächlich in EMACS -LISP geschrieben wurden, können sie C -Bibliotheken nutzen, um die Leistung zu verbessern. Zum Beispiel können EMACs zum Analysieren von XML und JSON verwendet werden libxml2 und libjanssonAnstelle der langsamer eingebauten EMACS-Lisp-Bibliotheken. Vom Benutzer installierte Pakete können dynamische Module laden.[42]

Seit Version 28.1 können EMACs EMACS -LISP -Dateien nativ kompilieren libgccjitim Gegensatz zu gerecht Bytekompilierung Sie.[43]

Plattformen

GNU EMACS ist einer der meist-portiert Nicht-triviale Computerprogramme und läuft auf einer Vielzahl von Auswahl an Betriebssysteme, einschließlich DOS, Fenster[44][45][46] und OpenVMS. Die Unterstützung für einige "veraltete Plattformen wurde in EMACS 23.1" wie VMs und meisten entfernt kommerzielle Unix Varianten.[4] Es ist für die meisten verfügbar Unix-artig Betriebssysteme wie z. Linux, die verschiedenen BSDS, Solaris, AIX, HP-UX und Mac OS,[47][48][49] und ist oft in ihren Systeminstallationspaketen enthalten. Einheimische Häfen von GNU -Emacs existieren für Android[50] und Nokia Maemo.[51]

GNU EMACs läuft beide auf Text Terminals und in grafische Benutzeroberfläche (GUI) Umgebungen. Bei Unix-ähnlichen Betriebssystemen kann GNU EMACs die verwenden X Fenstersystem Um seine GUI entweder direkt verwenden Athena Widgets oder durch Verwendung eines "Widget -Toolkits" wie z. Motiv, Lesstif, oder Gtk+. GNU -EMACs können auch die in macOS und Windows native Grafiksysteme verwenden, um sie bereitzustellen Menubrare, Symbolleisten, Bildlaufleisten und Kontextmenüs enger an die einzelnen Plattform entsprechen schauen und fühlen.

Gabeln

Xemacs

XEMACS 21.5 ON GNU/Linux

Lucid EMACs, basierend auf einer frühen Version von GNU EMACS 19, wurde ab 1991 von entwickelt Jamie Zawinski und andere bei Lucid Inc. eines der bekanntesten Gabeln in gratis Software Die Entwicklung trat auf, als die Codebasen der beiden EMACS -Versionen unterschiedlich waren und die separaten Entwicklungsteams die Bemühungen einstellten, sie wieder in ein einzelnes Programm zu verschmelzen.[52] Nachdem Lucid Insolvenz angemeldet hatte, wurde Lucid Emacs umbenannt Xemacs und bleibt nach GNU -EMACs die zweitbeliebteste Sorte von EMACs. XEMACS Development hat sich verlangsamt. Die neueste stabile Version 21.4.22 wurde im Januar 2009 veröffentlicht, während GNU EMACS viele früher XEMACS-Funktionen implementiert hat. Dies hat einige Benutzer dazu veranlasst, den Tod von Xemacs zu verkünden.[53]

Andere Gabeln von GNU -Emacs

Andere Gabeln, weniger bekannt als Xemacs, umfassen:

  • Wiese- Eine japanische Version für Microsoft Windows[54]
  • Sxemacs - Steve Youngs 'Gabel von Xemacs[55]
  • Aquamacs- Eine Version, die sich auf die Integration in die Apple Macintosh -Benutzeroberfläche konzentriert
  • REMACS - Ein Port der GNU -EMACs an die Rost Programmiersprache.[56]

Veröffentlichung Geschichte

Änderungen in jeder EMACS -Version werden in einer mit EMACS verteilten Nachrichtendatei aufgeführt.[57] Änderungen verursacht durch Herabstufung zur vorherigen Veröffentlichung sind in einer "AntineWS" -Fatei aufgeführt, oft mit einem snarky Kommentar darüber, warum dies wünschenswert sein könnte.[58]

Versionsgeschichte von GNU EMACs
Ausführung Veröffentlichungsdatum Wesentliche Änderungen[59]
28.1 4. April 2022 Native Zusammenstellung von LISP -Dateien. Textformung mit Harfbuzz und Zeichnung mit Kairo. Unterstützung beim Laden sicherer Computerfilter. Viel verbesserte Anzeige von Emoji- und Emoji -Sequenzen. Modusspezifische Befehle. EMACS zeigt standardmäßig passende Klammern.
27.2 25. März 2021 Hauptsächlich eine Bugfix -Version.[60]
27.1 10. August 2020 Eingebaute Unterstützung für Zahlen in willkürlicher Größe. Textformung mit Harfbuzz. Einheimische Unterstützung für JSON -Parsen. Bessere Unterstützung für die Zeichnung von Kairo. Tragbares Dumping anstelle von Unerlust. Unterstützung für XDG -Konventionen für Init -Dateien. Zusätzliche Initialisierungsdatei in der frühen Einlassung. Die Lexikalbindung wird standardmäßig verwendet. Integrierte Unterstützung für Registerkartenleisten und Registerkarten. Unterstützung für die Änderung und Drehen von Bildern ohne Imagemagick.
26.3 28. August 2019 Neuer GPG -Schlüssel für GNU EMACS LISP -Paketarchiv (ELPA) Paket Signature Checking.
26.2 12. April 2019 EMACS -Module können jetzt außerhalb der EMACS -Baumquelle gebaut werden. Einhaltung der Unicode -Version 11.0.
26.1 28. Mai 2018 Begrenzte Form der Parallelität mit Lisp -Fäden. Unterstützung für die optionale Anzeige von Liniennummern im Puffer. EMACS verwendet jetzt eine doppelte Pufferung, um das Flackern im X -Fenstersystem zu reduzieren. FlyMake wurde vollständig neu gestaltet. Tramp verfügt über eine neue Verbindungsmethode für Google Drive. Neuer horizontaler Einleitungsmodus. Eine systemd -Benutzereinheitsdatei wird bereitgestellt. Unterstützung für 24-Bit-Farben für fähige Textterminals.[61]
25.1 17. September 2016 Unterstützung für das Laden von gemeinsam genutzten/dynamischen Bibliotheken (Modulen). Validierung von TLS/SSL -Zertifikaten. Neuer kleiner Modus 'Elektrisch-Quote-Mode' zur Verwendung gekrümmter Zitate. Charakterklappunterstützung in isearch.el. Unterstützung für das Einbetten natives Widgets in EMACS -Puffer. Neue und verbesserte Einrichtungen zum Einsetzen von Unicode -Zeichen.[62]
24.5 10. April 2015 Hauptsächlich eine Bugfix -Version.[63][64]
24.4 20. Oktober 2014 Unterstützung für ACLs (Access Control -Listen) und digitale Signaturen von EMACS -LISP -Paketen. Verbesserte Unterstützung für Vollbild- und Multi-Monitor. Unterstützung für das Speichern und Wiederherstellen des Zustands von Frames und Fenstern. Verbesserte Menüunterstützung für Textterminals. Ein weiterer integrierter Webbrowser (M-x eww). Ein neuer rechteckiger Markus (C-x SPC). Support der Dateibenachrichtigung.[65]
24.3 10. März 2013 Verallgemeinerte Variablen befinden sich jetzt in Core EMACS LISP, einem Update für die Common Lisp -Emulationsbibliothek und einen neuen Hauptmodus für Python.[66]
24.2 27. August 2012 Bugfix Release[67]
24.1 10. Juni 2012 ELPA, Unterstützung für native Farbthemen, optionales GTK+3, Unterstützung für bidirektionale Eingabe, Unterstützung für den lexikalischen Scoping in EMACS Lisp[68]
23.4 29. Januar 2012 Behebt einen Sicherheitsfehler.[69]
23.3 10. März 2011 Verbesserte Funktionen für die Verwendung von EMACs mit Versionskontrollsystemen.
23.2 8. Mai 2010 Neue Werkzeuge zur Verwendung von EMACs als Ide, einschließlich der Navigation über ein Projekt und eine automatische Makefile -Generation. Neuer Hauptmodus zur Bearbeitung von JavaScript -Quelle. In der GUIS ist der Cursor versteckt, während der Benutzer typisiert.
23.1 29. Juli 2009 Unterstützung für anti-aliased Schriftarten auf X durch Xft,[70] besser Unicode Support, Doc-View-Modus und neue Pakete zum Anzeigen PDF und PostScript Dateien, Verbindung zu Prozessen bis durch D-Bus (DBUS), Verbindung mit dem GNU Privacy Guard (EASYPGG), NXML -Modus zur Bearbeitung Xml Dokumente, Ruby -Modus für die Bearbeitung Rubin Programme und mehr. Verwendung der Kohlenstoff GUI -Bibliotheken auf Mac OS X wurde durch die Verwendung der moderneren ersetzt Kakao GUI -Bibliotheken.
22.3 5. September 2008 GTK+ Toolkit-Unterstützung, erweiterte Mausunterstützung, ein neues Tastatur-Makrosystem, eine verbesserte Unicode-Unterstützung und Drag & Drop-Betrieb auf X. Viele neue Modi und Pakete, einschließlich einer grafischen Benutzeroberfläche zu GDB, Python-Modus, dem mathematischen Tool Calc und Das Remote -Dateibearbeitungssystem ("transparent Remote (Datei) Zugriff, Mehrfachprotokoll").[71]
22.2 26. März 2008 Neue Unterstützung für den Basar, den Quecksilber, den Monoton und die Git Versionskontrolle Systeme. Neue Hauptmodi zur Bearbeitung von CSS-, Vera-, Verilog- und Bibtex -Stildateien. Verbesserte Scrolling -Unterstützung im Bildmodus.
22.1 2. Juni 2007 Unterstützung für das GTK+ Grafische Toolkit, Unterstützung für Drag & Drop auf X, Unterstützung für die Mac OS X Carbon UI, Org-Mode Version 4.67D, enthalten[72]
21.1 20. Oktober 2001 Unterstützung für die Anzeige von Farben und einigen anderen Attributen für Terminals, eingebaute horizontale Bildlauf, Schallunterstützung, Rollmausunterstützung, verbessertes Layout der Menüleiste, Unterstützung für Bilder, Symbolleiste und Tooltips, Unicode-Unterstützung
20.1 17. September 1997 Mehrsprachige Unterstützung
19.34 22. August 1996 Fehlerfix-Release ohne benutzerfreundliche Änderungen[73]
19.31 25. Mai 1996[74] EMACS öffnet sich X11 standardmäßig Frames, Scrollenstangen ein Windows 95 und Nt, Subprozesse auf Windows 95, recover-session Um mehrere Dateien nach einem Absturz wiederherzustellen, einige [[doctor.el]] Funktionen entfernt, um den USA einzuhalten Kommunikation Anstandsgesetz[73]
19.30 24. November 1995 Mehrfachframe -Unterstützung auf MS Windows, Menüleiste in Textterminals verfügbar, pc-select Paket zum Nachahmung gemeinsamer Windows und Macintosh -Schlüsselbindungen.[73]
19.29 19. Juni 1995[75]
19.28 1. November 1994 Erster offizieller V19 -Veröffentlichung. Unterstützung für mehrere Frames mithilfe des X -Fenstersystems; VC, eine neue Schnittstelle für Versionskontrollsysteme, Schriftverschlussmodus, Hexl-Modus für hexadezimal Bearbeitung.
19.7 22. Mai 1993
18.59 31. Oktober 1992
18.53 23. Februar 1989
18.52 17. August 1988 spook.el eine Bibliothek zum Hinzufügen von "lenkt die ab NSA"Keywords (UNCPCJ Notfallmanagement Jitem PEM Bullion MSCJ Airplane Slogue Gatt Ammonium Nitrathandel Botschaft Notfall Telint) zu jeder Nachricht, die Sie senden.[76]
18.24 2. Oktober 1986 Servermodus,[77] M-x disassemble, EMACs können TCP -Verbindungen öffnen, emacs -nw EMACs im Konsolenmodus auf zu öffnen xterms.
17.36 20. Dezember 1985 Sicherungsdateiversionsnummern
16.56 15. Juli 1985 Erste EMACS 16 Release. EMACS-LISP-Modus unterscheidet sich von Lisp-Mode,[78] Entfernen Sie alle Code aus Gosling Emacs Aufgrund von Urheberrechtsfragen[79]
15.10 11. April 1985
13.8? 20. März 1985 Erste Veröffentlichung. Das Vaxsig VAX85B Decus Tape hat jedoch Version 13.8 mit Dateidaten vom 19. Juni 1985 mit RCS -Dateien vom 31. März 1985. Es handelt sich um eine schlecht beschädigte Kopie. Version 13.9 wird in der Nachrichtendatei verwiesen.[78] Daher war 13,8 möglicherweise die erste Veröffentlichung, da es keine weiteren 13.x -Veröffentlichungen benannt ist.

Verweise

  1. ^ Eli Zaretskii (4. April 2022). "EMACS 28.1 veröffentlicht". Abgerufen 4. April 2022.
  2. ^ "EMACS Pretest 28.0.92 ist raus". 13. März 2022.
  3. ^ "GNU emacs", Analyse Zusammenfassung, Offener Nabe
  4. ^ a b "EMACS -Maschinenliste".
  5. ^ ""Learning GNU EMACS, dritte Ausgabe": Ein Leitfaden für den weltweit erweiterbarsten, anpassbaren Editor ".
  6. ^ "Alphabetsuppe: Die Internationalisierung von Linux, Teil 1 Linux Journal März 1999". Mit der Verfügbarkeit von Schriftarten und gegebenenfalls internationalisierten Terminalemulatoren können EMACs gleichzeitig die meisten Sprachen der Welt bewältigen.
  7. ^ Fusco, John (2007-03-06). Die Toolbox des Linux -Programmierers. ISBN 9780132703048.
  8. ^ Cameron, Debra; Elliott, James; Loy, Marc; Raymond, Eric; Rosenblatt, Bill (2005). Lernen von GNU -Emacs. ISBN 9780596006488.
  9. ^ "Gnumacs".
  10. ^ "Debian - Details zu Paketemacs in Wheezy".
  11. ^ "News.1-17". Es gibt ein neues Versionsnummerierungsschema. Was früher die erste Versionsnummer war, die 1 war, wurde verworfen, da es nicht so aussieht, als würde ich drei Ebenen der Versionsnummer benötigen. Es wurde jedoch eine neue dritte Versionsnummer hinzugefügt, um Änderungen durch Benutzerseiten darzustellen. Diese Zahl wird in EMACs immer Null sein, wenn ich sie verteile; Es wird jedes Mal inkrementiert, wenn EMACS an einem anderen Standort erstellt wird.
  12. ^ "GNU EMACS FAQ". Eine Versionsnummer mit zwei Komponenten (z. B. "22 .1") zeigt eine veröffentlichte Version an; Drei Komponenten geben eine Entwicklungsversion an (z. B. "23 .0.50" ist das, was letztendlich zu „23 .1 “wird).
  13. ^ Stoll, Clifford (1988). "Den schlauen Hacker verfolgen". Kommunikation der ACM. 31 (5): 484–497. doi:10.1145/42411.42412. S2CID 6956966.
  14. ^ "Re: gnu emacs". GNU. Abgerufen 2014-11-16.]
  15. ^ "Re: Auf der Suche nach einem neuen EMACS -Betreuer oder Team". GNU.org Mailingliste. Abgerufen 2008-02-23.; siehe auch "Stallman über die Übergabe von GNU EMACs, seine Zukunft und die Bedeutung der Nomenklatur"
  16. ^ "Feature Freeze". lists.gnu.org.
  17. ^ "EMACS bekommt einen neuen Betreuer, als Richard Stallman abhebt". Das Register.
  18. ^ "Ein neuer Co-Maintainer begrüßt: Eli Zaretskii". lists.gnu.org.
  19. ^ "Lars Ingebebrigtsen ist jetzt einer der EMACS -Betreuer". lists.gnu.org.
  20. ^ Brockmeier, Joe (29. Juli 2011). "Sag was? GNU EMACs verstößt gegen die GPL". Netzwerkwelt. Abgerufen 2016-01-19.
  21. ^ Lizenz widerrufen Archiviert 2016-01-27 bei der Wayback -Maschine von Edward J. Naughton (8. August 2011)
  22. ^ "EMACS verstößt seit 2009 gegen die GPL - Slashdot". Entwickler.Slashdot.org. Abgerufen 2022-01-10.
  23. ^ "Re: Kompilierte Dateien ohne Quellen ????". lists.gnu.org. Abgerufen 2022-01-10.
  24. ^ Halme, Heikki; Heinänen, Juha (1988). "GNU emacs als dynamisch erweiterbare Programmierumgebung". Software: Übung und Erfahrung. 18 (10): 999–1009. doi:10.1002/spe.4380181006. S2CID 8629911.
  25. ^ Spinellis, Diomidis; Gousios, Georgios (2009-01-15). Schöne Architektur: Führende Denker enthüllen die versteckte Schönheit im Softwaredesign. ISBN 9780596554392.
  26. ^ Heiberger, Richard M.; Holland, Burt (2015-12-23). Statistische Analyse und Datenanzeige: Ein Zwischenkurs mit Beispielen in R.. ISBN 9781493921225.
  27. ^ "Rettung von EMACS -Sitzungen".
  28. ^ "Echobereich".
  29. ^ "Eine Tutorial -Einführung in GNU EMACs".
  30. ^ "Frames - GNU EMACS -Handbuch". Es ist jedoch weiterhin möglich, mehrere „Frames“ für Textterminals zu erstellen. Solche Frames werden einzeln angezeigt, wodurch der gesamte Terminalbildschirm gefüllt wird
  31. ^ Cameron, Debra; Rosenblatt, Bill; Raymond, Eric S. (1996). Lernen von GNU -Emacs. Kurz gesagt, Serie (2 ed.). O'Reilly Media, Inc. p. 533. ISBN 978-1-56592-152-8. Abgerufen 2010-11-02. Ein Gesicht ist eine Schrift- und Farbkombination.
  32. ^ "Anfangsoptionen". Im Batch-Modus zeigt EMACS den zu bearbeitenden Text nicht an, und die Standard-Terminal-Interrupt-Zeichen wie C-Z und C-C haben ihren üblichen Effekt. EMACS -Funktionen, die normalerweise eine Nachricht im Echobereich drucken, druckt stattdessen entweder in den Standardausgabestream (STDOut) oder den Standardfehlerstream (STDERR). (Um genau zu sein, Funktionen wie Prin1, Princ und Print in STDOut, während Nachrichten und Fehler in Stderr gedruckt werden.) Funktionen, die normalerweise die Tastatureingabe aus dem Minibuffer lesen, stattdessen ihre Eingabe aus dem Standardeingangsstrom (STDIN) des Terminals (STDIN).
  33. ^ "BatchMode".
  34. ^ Stallman, Richard; et al. (1987). GNU EMACS -Handbuch (PDF) (19 ed.). Boston, MA, USA: Free Software Foundation. Bibcode:1987gem..book ..... s. Abgerufen 8. Januar 2022.
  35. ^ "Kommandozeilenargumente".
  36. ^ a b Stallman, Richard (2007-06-03). "EMACS 22.1 veröffentlicht". Info-gnu-emacs (Mailingliste). Abgerufen 2011-07-31.
  37. ^ Feng, Chris (27. November 2017). "EXWM: EMACS X Window Manager" - über Github.
  38. ^ Jonas Bernoulli. "Es ist Magit! Ein Git -Porzellan in Emacs". Abgerufen 8. Februar, 2017.
  39. ^ Petersen, Mickey. "Eine Einführung in Magit, ein EMACS -Modus für Git". EMACs beherrschen. Abgerufen 8. Februar, 2017.
  40. ^ "Babel: Einführung".
  41. ^ "6.1 Haben EMACs Probleme mit Dateien, die größer als 8 Megabyte sind?".
  42. ^ "EMACS Dynamische Module". GNU EMACS Lisp Referenzhandbuch. Abgerufen 2022-04-15.
  43. ^ "Zusammenstellung von Lisp zu nativem Code". GNU EMACS Lisp Referenzhandbuch. Abgerufen 2022-04-15.
  44. ^ B, Ramprasad (2005-06-24). "GNU EMACS FAQ für Windows 95/98/ME/NT/XP und 2000". Abgerufen 2006-09-27.
  45. ^ Borgman, Lennart (2006). "EMACSW32 Homepage". Archiviert von das Original Am 2007-03-06. Abgerufen 2006-09-27.
  46. ^ "GNU EMACs unter Windows". Franz Inc. 2006. Abgerufen 2006-09-27.
  47. ^ "EMACs für Mac OS X". Abgerufen 2022-02-09.
  48. ^ "Carbon Emacs -Paket". Abgerufen 2012-06-10.
  49. ^ "Aquamacs ist ein benutzerfreundliches Mac-EMACs für Mac OS X". Abgerufen 2006-09-27.
  50. ^ "EMACS auf Android". Emacswiki.
  51. ^ "Categoryports". Emacswiki.
  52. ^ Stephen J., Turnbull. "Xemacs vs. GNU emacs". Abgerufen 2012-10-02.
  53. ^ "Xemacs ist tot. Es lebe Xemacs!".
  54. ^ "Frontpage - Meadow Wiki". 16. Februar 2012. archiviert von das Original Am 2012-02-16.
  55. ^ "SXEMACS -Website". Sxemacs.org. 2009-10-11. Abgerufen 2009-11-08.
  56. ^ "REMACS". Das Remacs Github Repository. Abgerufen 22. Februar, 2017.
  57. ^ "News.24.5". GNU EMACS News-Historie benutzerfreundlicher Änderungen.
  58. ^ "Antinews". Für Benutzer, die rechtzeitig rückwärts leben, finden Sie hier Informationen über das Herunterfahren auf EMACS Version 24.5. Wir hoffen, dass Sie die größere Einfachheit genießen, die sich aus der Abwesenheit vieler EMACS 25.2 -Funktionen ergibt.
  59. ^ "EMACS -Zeitleiste". www.jwz.org. Abgerufen 2022-01-10.
  60. ^ "Änderungen in EMACs 27.2".{{}}: CS1 Wartung: URL-Status (Link)
  61. ^ "EMACS 26.1 veröffentlicht". lists.gnu.org. Abgerufen 2018-05-29.
  62. ^ "EMACS 25.1 veröffentlicht". lists.gnu.org. Abgerufen 2016-09-17.
  63. ^ "GNU EMACS News-Historie benutzerfreundlicher Änderungen". 2015-04-10. Abgerufen 2015-04-11.
  64. ^ Petton, Nicolas (2015-04-10). "EMACS 24.5 veröffentlicht". Archiviert von das Original Am 2015-04-11. Abgerufen 2015-04-11.
  65. ^ Morris, Glenn (2014-10-20). "EMACS 24.4 veröffentlicht". Abgerufen 2014-10-22.
  66. ^ Morris, Glenn (2013-03-10). "EMACS 24.3 veröffentlicht". Abgerufen 2013-03-16.
  67. ^ Yidong, Chong (2012-08-27). "EMACS Release -Kandidat 24.2". Abgerufen 2012-11-11.
  68. ^ Yidong, Chong (2012-06-01). "EMACS Release -Kandidat 24.1". Abgerufen 2012-06-01.
  69. ^ Yidong, Chong (2012-01-09). "Sicherheitsfehler in Ede; neue Veröffentlichungspläne". Abgerufen 2012-02-23.
  70. ^ "EMACS-FU: EMACS 23 wurde veröffentlicht!". Emacs-fu.blogspot.com. 2009-07-28. Abgerufen 2009-11-08.
  71. ^ Zawodny, Jeremy (2003-12-15). "Emacs Fernbearbeitung mit Tramp". Linux Magazine. Abgerufen 2010-02-01. Tramp [...] steht für "transparent Remote (Datei) Zugriff, Mehrfachprotokoll".
  72. ^ Free Software Foundation Inc (2007). "EMACS News Version 22.1". Abgerufen 2013-12-29.
  73. ^ a b c "News.19".
  74. ^ "EMACS -Zeitleiste".
  75. ^ "Gnus blinkt".
  76. ^ "News.18".
  77. ^ "News.18". Programme wie Mailer, die "den Editor" als minderwertiger Text aufrufen, können jetzt einen vorhandenen EMACS -Prozess verwenden, anstatt einen neuen Editor zu erstellen.
  78. ^ a b "News.1-17".
  79. ^ "Xemacs Interna".

Weitere Lektüre

Externe Links