18.5Text bearbeiten

Der Emacs befindet sich normalerweise im Einfügemodus. Das heißt, neu eingegebener Text wird an der aktuellen Cursorposition in den vorhandenen Text eingefügt. Wenn Sie stattdessen den vorhandenen Text überschreiben möchten, wechseln Sie mit (Alt)+(X) overwrite-mode (¢) in den Überschreibmodus. Die nochmalige Ausführung des Kommandos schaltet den Modus wieder aus. Bei einer korrekten Konfiguration der Tastatur können Sie den Modus auch mit (Einfg) umschalten.

Zur Veränderung der Groß- und Kleinschreibung bereits geschriebener Wörter bietet der Emacs die in Tabelle 18.8 zusammengefassten Kommandos an.

Tastenkürzel

Funktion

(Alt)+(C)

Buchstabe an der Cursorposition groß, alle weiteren Buchstaben des aktuellen Wortes klein (Capitalize)

(Alt)+(L)

alle Buchstaben des Wortes ab Cursorposition klein (Lower)

(Alt)+(U)

alle Buchstaben des Wortes ab Cursorposition groß (Upper)

(Esc), (-), (Alt)+(C)

erster Buchstabe groß, Rest klein. Wenn der Cursor am Beginn eines Wortes steht, wird das vorige Wort verändert.

(Esc), (-), (Alt)+(L)

alle Buchstaben des Wortes bis zur Cursorposition klein; wenn der Cursor am Beginn eines Wortes steht, dann das vorige Wort klein.

(Esc), (-), (Alt)+(U)

alle Buchstaben des Wortes bis zur Cursorposition groß; wenn der Cursor am Beginn eines Wortes steht, dann das vorige Wort groß.

(Strg)+Leertaste

Markierungspunkt setzen

(Strg)+(X), (Strg)+(L)

Bereich zwischen Markierungspunkt und Cursor klein

(Strg)+(X), (Strg)+(U)

Bereich zwischen Markierungspunkt und Cursor groß

Tabelle 18.8Groß- und Kleinschreibung ändern

Ein häufiger Tippfehler ist das Vertauschen zweier Buchstaben. Mit (Strg)+(T) können Sie solche Vertauschungen bequem korrigieren. Der Cursor muss dabei auf dem zweiten der beiden betroffenen Buchstaben stehen, im Wort »vertaushcen« also auf »c«.

Analog können mit (Alt)+(T) zwei Wörter vertauscht werden. Wenn der Cursor dabei am Beginn eines Wortes steht, wird dieses Wort mit dem vorangegangenen vertauscht. Steht der Cursor dagegen irgendwo im Wort, dann wird das Wort mit dem folgenden Wort vertauscht. Das mehrfache Ausführen von (Alt)+(T) führt dazu, dass das erste der beiden Wörter immer weiter nach vorn bewegt wird.

Mit (Strg)+(X), (Strg)+(T) vertauschen Sie schließlich die aktuelle Zeile mit der vorherigen Zeile. Die mehrfache Ausführung des Kommandos führt dazu, dass die Zeile oberhalb des Curors immer weiter nach unten rutscht.

Tabulatoren

In der Grundeinstellung und bei der Bearbeitung eines normalen ASCII-Texts wird durch (ê) ein Tabulatorzeichen eingefügt. Tabulatoren sind nicht sichtbar. Ob an einer Stelle ein Tabulatorzeichen oder mehrere Leerzeichen stehen, merken Sie erst, wenn Sie den Cursor darüber bewegen. Bei Tabulatoren bewegt sich der Cursor in Sprüngen.

Je nachdem, welchen Text (z.B. eine *.tex-Datei) Sie mit dem Emacs bearbeiten, wird automatisch ein dazu passender Bearbeitungsmodus aktiviert (siehe Abschnitt 18.9, »Besondere Bearbeitungsmodi«). Bei manchen dieser Modi werden einzelne Tasten umdefiniert. Dies betrifft insbesondere auch die Taste (ê). Im C-Modus bewirkt die Taste beispielsweise, dass der Zeilenanfang entsprechend der Programmstruktur eingerückt wird. Im LaTeX-Modus hat die (ê)-Taste gar keine Wirkung. Wenn (ê) also nicht so funktioniert, wie Sie erwarten, ist zumeist der Bearbeitungsmodus schuld. Es bestehen mehrere Möglichkeiten, dennoch Tabulatoren einzugeben:

Als Tabulatorweite gelten normalerweise acht Zeichen. Mit (Alt)+(X) set-variable tab-width können Sie aber auch eine andere Tabulatorweite einstellen. Wenn Sie generell mit vier statt mit acht Zeichen pro Tabulator arbeiten möchten, können Sie diese Einstellung auch in der Konfigurationsdatei ~/.emacs vornehmen.

In einigen Bearbeitungsmodi ersetzt der Emacs automatisch lange Folgen von Leerzeichen durch Tabulatoren. Mit den beiden Kommandos (Alt)+(X) tabify können Sie im vorher markierten Bereich alle Leerzeichenserien durch Tabulator-Zeichen ersetzen. (Alt)+(X) untabify funktioniert genau umgekehrt und ersetzt Tabulatoren durch eine ausreichende Anzahl von Leerzeichen.

Wenn Sie in die Konfigurationsdatei .emacs die folgende Zeile einbauen, dann fügt der Emacs generell statt Tabulaturzeichen Leerzeichen ein:

(setq-default indent-tabs-mode nil)

Text manuell ein- und ausrücken

Das Ein- und Ausrücken von Text ist insbesondere in Programmlistings zur Strukturierung des Codes erforderlich. Das wichtigste Kommando wird mit (Strg)+(X), (ê) aufgerufen. Es rückt den Text zwischen dem Markierungspunkt ((Strg)+Leertaste) und der aktuellen Cursorposition um ein Leerzeichen ein. Wenn Sie vor diesem Kommando (Alt)+n ausführen, wird der markierte Textbereich um n Zeichen eingerückt. Durch ein vorangestelltes (Esc), (-) wird der Text aus- statt eingerückt.

Tastenkürzel

Funktion

(Strg)+Leertaste

Markierungspunkt setzen

(Strg)+(X), (ê)

Text zwischen Markierungspunkt und Cursorposition um ein Zeichen einrücken

(Esc), (-), (Strg)+(X), (ê)

Text um ein Zeichen ausrücken

(Alt)+n, (Strg)+(X), (ê)

Text um n Zeichen einrücken

(Esc), (-), (Alt)+n, (Strg)+(X), (ê)

Text um n Zeichen ausrücken

Tabelle 18.9Text ein- und ausrücken

Wenn Sie rechteckige Textblöcke innerhalb von Zeilen einfügen oder löschen möchten (etwa bei der Bearbeitung von Tabellen oder zum Ein- oder Ausrücken von Kommentaren am Ende von Programmzeilen), müssen Sie mit den sogenannten Rechteck-Kommandos arbeiten (siehe Tabelle 18.10). Als Rechteck gelten dabei alle Zeichen im Bereich zwischen dem Markierungspunkt und der Cursorposition.

Noch komfortabler lassen sich rechteckige Textblöcke im CUA-Modus bearbeiten: Wenn dieser Modus aktiv ist, beginnen Sie die Rechteckmarkierung mit (Strg)+(¢). Anschließend können Sie mit (Entf) Zeichen in allen Zeilen löschen bzw. mit allen anderen Tasten neuen Text einfügen.

Tastenkürzel

Funktion

(Strg)+Leertaste

Markierungspunkt setzen

(Strg)+(X), (R), (O)

rechteckigen Bereich öffnen (Rectangle Open), d.h., in den rechteckigen Bereich Leerzeichen einfügen

(Strg)+(X), (R), (K)

rechteckigen Bereich löschen (Rectangle Kill)

(Strg)+(X), (R), (Y)

gelöschten rechteckigen Bereich an der Cursorposition einfügen (Rectangle Yank)

(Alt)+(X) string-rectangle

einen Text vor jede Zeile des markierten Bereichs einfügen

(Strg)+(¢)

Rechteck-Markierung im CUA-Modus

Tabelle 18.10Rechteck-Kommandos

Der Emacs kennt darüber hinaus einige Bearbeitungsmodi, in denen Einrückungen automatisch durchgeführt werden. So werden im C-Modus Programmzeilen bei jeder geschweiften Klammer { oder } um einige Leerzeichen ein- oder ausgerückt (siehe Abschnitt 18.9, »Besondere Bearbeitungsmodi«).