# Texteditor

Ein Texteditor (von lateinisch textus ‚Inhalt‘ und editor für ‚Herausgeber‘ oder ‚Erzeuger‘) ist ein Computerprogramm zum Bearbeiten von Texten. Der Editor lädt die zu bearbeitende Textdatei und zeigt ihren Inhalt auf dem Bildschirm an, mit der Möglichkeit, durch positionieren eines Cursors einzelne Textzeichen hinzuzufügen oder zu löschen. Ebenso üblich ist bei vielen Texteditoren Unterstützung für Textmarkierung, Kopieren und Einfügen, Ziehen und Ablegen. Erweiterte Editoren bieten Zusatzfunktionen wie eine Textsuche, oder sogar WYSIWYG bei der Interpretation von Auszeichnungssprachen wie beispielsweise Markdown. Auch gibt es darauf spezialisierte Editoren, etwa HTML-Editoren für die Bearbeitung von HTML-Dateien.

## Geschichte

Texteditoren entstanden aus der Notwendigkeit, Quelltext von Computerprogrammen und Daten in den Rechner einzugeben. Die Vorläufer von Texteditoren waren daher Lochkartenlocher, die diese Aufgabe mittels der Vorbereitung von Lochkarten wahrnahmen.
Die ersten Texteditoren waren zeilenorientierte Editoren an schreibmaschinenähnlichen Terminals, an denen keine Darstellungen in Form von Fenstern oder Bildschirmen möglich waren. Diese Programme erlaubten es lediglich, einzelne Zeilen einer Textdatei zu verändern. Trotz der beschränkten Möglichkeiten gehören auch in heutigen Betriebssystemen zeilenorientierte Editoren wie EDLIN unter DOS oder ed unter Unix zum Standardumfang; sie ermöglichen etwa bei der Installation oder nach Systemzusammenbruch die Bearbeitung von Konfigurationsdateien, wenn keine komfortablen grafischen Umgebungen verfügbar sind.
Mit dem Aufkommen von Computerterminals entstanden die ersten bildschirmorientierten Texteditoren. Zu den ersten Programmen dieser Gruppe gehören der 1967 geschriebene Editor O26 auf CDC-6000-Großrechnern und der vi aus dem Jahr 1976.

## Funktionen

Manche Texteditoren erleichtern dem Benutzer durch Erweiterungen die Arbeit:

### Suchen und Ersetzen

    Mit der Suchfunktion können Textstellen schnell gefunden und gegebenenfalls ersetzt werden („Suchen und Ersetzen“). Leistungsfähige Texteditoren können so komplexe, strukturierte Veränderungen am Text vornehmen, oft mit der Flexibilität regulärer Ausdrücke.

### Syntaxhervorhebung

    Syntaxhervorhebung ist die Möglichkeit, charakteristische Textmuster hervorzuheben.

### Makros

    Bestimmte regelmäßig sich wiederholende Funktionen können als Makro gespeichert werden.

### Code-Faltung

    Teile des Textes (wie z. B. ganze Anweisungsblöcke in Programmtexten) werden mit Code-Faltung eingeklappt und erhöhen so die Übersichtlichkeit.

### Spaltenmodus

    Spaltenmodus in Geany Rechteckige Blöcke können markiert, kopiert, eingefügt und editiert werden.

### Symbolbrowser

    Funktionen, Klassen, structs etc. können über einen Symbolbrowser schnell eingesehen werden.

### Codevervollständigung

    Automatische Codevervollständigung.

### Calltips

    Anzeige von Aufrufparametern für Funktionen und Methoden.

### Integrierte Programme

    Integrierte Programme erlauben schnellen Zugriff während des Entwickelns (z. B. Terminalemulation, Kompilierung, Dateimanager, FTP-Clients).

### Metaeigenschaften

    Eigenschaften wie Zeichensatz, Zeilenumbrüche oder Byte Order Mark können eingesehen und verändert werden.

### Darstellung

    Dateien können als Plain text, mit oder ohne Zeilenumbrüche, aber auch als Hexadezimalzahlen dargestellt werden (Hex-Editor).

### Automatische Einrückung

    Je nach Einrückungsstil wird bei einer neuen Zeile zusätzlich die Einrückung der vorhergehenden Zeile übernommen, auch kann Programmcode anhand eines oft anpassbaren Schemas mit korrekten Einrückungen neu formatiert werden.

### Plugins

    Schnittstelle für Plug-ins.

## Abgrenzung zur Textverarbeitung

Im Gegensatz zu einem Textverarbeitungssystem und zu Desktop-Publishing-Software (DTP) bietet ein Texteditor in der Regel nur sehr eingeschränkte Layout- und Formatierungsfunktionen an und speichert den Text als reine Textdatei ohne Formatierungen. Ein Texteditor wird beispielsweise zur Erstellung von Notizen, zum Ändern von Konfigurationsdateien und zur Bearbeitung von Quelltext beim Programmieren verwendet. Auch Wikipedia bietet zum Erstellen oder Verändern von Einträgen einen in den Webbrowser eingebetteten einfachen Texteditor an, der dem Benutzer den Artikel als reinen Text mit einfachen, im Text selbst enthaltenen Formatierungsmarkierungen präsentiert.
Integrierte Entwicklungsumgebungen (oft abgekürzt IDE, für englisch integrated development environment) bestehen im Wesentlichen aus einer Texteditorkomponente mit erweiterten Funktionen, um den erstellten Quelltext strukturiert anzuzeigen und mit wenigen Tasten- oder Mausklicks zu kompilieren, die Quelltextdateien zu verwalten, auszuwerten oder direkt in der Entwicklungsumgebung auf Fehler zu analysieren.
Die von einem Texteditor erzeugten Dateien erhalten traditionell aufgrund der historischen 8.3-Konvention bei Dateinamen, wie sie auch in den Betriebssystemen DOS und Windows zu finden waren, die Dateinamenserweiterung „.txt“, wobei je nach Verwendungszweck der Datei auch anderslautende Dateinamenserweiterungen gängig sein können, wie auch Dateinamen ohne eine Erweiterung. Viele vordefinierte Dateinamen bzw. deren Erweiterungen sind nicht selten reguläre Textdateien, beispielsweise Konfigurationsdateien. Die Zeichenkodierung der Textdateien ist meist ein Zeichensatz des verwendeten Betriebssystems in der landes- und systemspezifischen 8-Bit-Erweiterung des 7-Bit-ASCII, historisch auch EBCDIC (IBM Mainframe), nach ca. 2010 häufig jedoch eine Unicode-Kodierung wie etwa UTF-8 oder UTF-16. Beim Austausch von Textdateien zwischen verschiedenen Systemen ist zudem zu beachten, dass verschiedene Konventionen zur Kodierung des Zeilenendes existieren.

## Anwendung
### Unix

Der standardisierte Unix-Texteditor ed ist einer der ältesten Editoren, die noch Verwendung finden. Dieser arbeitet zeilenorientiert und verfügt über eine leistungsfähige Editiersprache.
Später kam als Erweiterung von ed und dessen Erweiterung ex der visuelle Editor vi auf, der die Bearbeitung von Texten mit einer direkten Vorschau ermöglichte. Dieser ist – wie ed – POSIX-standardisiert und normalerweise auf allen Unix- und Unix-artigen Systemen, wie etwa BSD-Unix und Linux, installiert. Wie auch ed hat vi keine Menüs, stattdessen wird mit diversen Tastenkombinationen und Editierbefehlen gearbeitet. Zu vi existieren verschiedene Nachprogrammierungen („Klone“), z. B. Vi Improved (Vim), vile, nvi, elvis und weitere. Vim wurde auf viele Systemplattformen portiert, unterstützt grafische Oberflächen und ist einer der leistungsfähigsten Editoren.
Ein weiterer, oft benutzter und sehr mächtiger Editor ist GNU Emacs, ein frei programmierbarer Texteditor mit einem kompletten (wenn auch simplen) Lisp-System im Inneren, auf dem viele Erweiterungen und ein guter Teil des Editors selbst aufbauen. Kleinere Emacs-ähnliche Editoren sind z. B. µemacs (MicroEmacs), jed, jove. XEmacs ist eine im Wesentlichen vergleichbare Alternative zu GNU Emacs, die sich von diesem vor Jahren abspaltete. Emacs, XEmacs und µemacs wurden auf viele Systemplattformen portiert und stehen heute außer auf Unix unter Windows, Mac OS und einigen anderen Systemen wie VMS zur Verfügung.
Wer WordStar-kompatible Befehle bevorzugt, kann unter Unix den Texteditor joe oder Jed verwenden. Auch Emacs lässt sich vollständig im wordstar-mode bedienen.
Außer den hier vorgestellten gibt es noch viele weitere Texteditoren für Unix-Systeme. Der Standardeditor kann unter diesen i. d. R. mittels der Umgebungsvariable EDITOR gesetzt werden.

### macOS

Unter macOS stehen aufgrund dessen Unix-Kerns die üblichen Unix-Editoren auf der Kommandozeile zur Verfügung. Zur Systemsoftware gehört zudem der Editor TextEdit, der neben reinen Text-Dateien auch das Rich Text Format (rtf) unterstützt und der, bei eingeschränkter Darstellung der Formatierung, die Inhalte weiterer Dateiformate zugänglich macht, so etwa das Microsoft Word (doc, docx) und das OpenOffice-Format (odt). TextEdit kann mit zahlreichen Zeichenkodierungen umgehen (als Standard wird UTF-8 verwendet) und konvertiert die verschiedenen Zeilenenden von Unix, Mac OS Classic und Windows automatisch. Eine einfache Suchen und Ersetzen-Funktion gehört ebenfalls zum Funktionsumfang.
Daneben stehen zahlreiche leistungsfähige Texteditoren von Drittanbietern zur Verfügung, am bekanntesten ist das bereits seit 1992 für den Mac entwickelte BBEdit.

### Windows

Jede Version des Betriebssystems Windows enthält einen einfachen Texteditor namens Notepad. Dieser Editor bietet allerdings nur sehr eingeschränkte Möglichkeiten und ist daher für größere Bearbeitungen wenig geeignet.
Darüber hinaus sind zahlreiche andere, darunter sehr leistungsfähige Texteditoren verfügbar. Neben den von anderen Systemen portierten Programmen existiert eine Fülle meist kommerzieller Software. Unter Windows NT und dessen Nachfolgern existiert wieder der alte DOS-Editor edlin, der ähnlich wie ed ein zeilenorientiertes Bearbeiten mittels einer Kommandosprache bereitstellt, jedoch nicht die Leistungsfähigkeit seines Unix-Verwandten aufweist (z. B. bietet er keine regulären Ausdrücke zum Formulieren von Mustern).