Emacs Tutorial (Pt. 3)

In den ersten beiden Artikeln dieser Reihe wurden die Grundlagen gelegt. Es ist inzwischen bekannt, wie Emacs geöffnet und geschlossen wird, wie ein Buffer in eine Datei geschrieben wird und was genau es mit Buffern, Files, Windows, Frames und Pointern auf sich hat. Der vorliegende Artikel beschäftigt sich mit der Bewegung innerhalb eines Textdokuments und grundlegenden Operationen, wie Kopieren, Ausschneiden und Einfügen von Textabschnitten.

Zur Wiederholung sei erwähnt, dass C-x für das Drücken der CTRL-Taste und dem Buchstaben ‘x’ steht. M-x steht dann für die Meta-Taste (ESC oder ALT auf modernen Tastaturen) und den Buchstaben ‘x’.

Bewegung in die Sache bringen
Kleine Schritte

Mit den Pfeiltasten bewegt man den Pointer in Emacs um jeweils eine Position in die angegebene Richtung. Frühe Tastaturen hatten keine Pfeiltasten, weswegen es auch dafür Tastenkombinantionen gibt, die hier nur der Vollständigkeit halber aufgelistet sein sollen. C-f enspricht der Bewegung um ein Zeichen nach rechts (control forward) und C-b der Bewegung um ein Zeichen nach links (control backward). Mit C-p erreicht man die selbe Pointerposition eine Zeile über der aktuellen und mit C-n die Position in der Zeile darunter (Control previous / next).

Weiter ausschreiten

Die Bewegung um einzelne Zeichen ist in großen Dokumenten eine mühsame Angelegenheit. Deshalb gibt es in guten Editoren die Möglichkeit, ganze Textabschnitte zu überspringen. Der kleinste Textabschnitt ist ein einzelnes Wort, welches für Emacs eine Zeichenreihe zwischen zwei White Spaces ist. Mit M-f bewegt sich der Pointer um ein Wort in Leserichtung, mit M-b entsprechend ein Wort zurück. Das Ende der aktuellen Zeile erreicht man mit einem beherzten C-e, den Anfang mit C-a.

Siebenmeilen

Wenn das Dokument sehr groß ist, möchte man sich nicht Zeilenweise fortbewegen. Eine Seite ist in Emacs der aktuell sichtbare Bereich des Buffers. Um sich die nächste Seite anzeigen zu lassen, gibt man C-v. Mit M-v kommt man direkt zurück auf die Seite davor. Den gesamten Buffer überspringt man letztendlich mit M-> und kommt an dessen Anfang zurück mit M-<.

So einfach ist die Bewegung in einem Buffer.

Guttenberg und Co.
Text markieren

Um Text in Emacs zu markieren, setzt man seinen Pointer vor den ersten Buchstaben des zu markierenden Abschnitts und drück einmal C-Space (Space = Leertaste). Dann bewegt man den Pointer mithilfe der oben besprochenen Bewegungsfunktionen hinter das letzte Zeichen des zu markierenden Textes. Der Cursor zeigt nun auf das erste Zeichen nach dem markierten Abschnitt. Mit C-x C-x werden Beginn und Ende des markierten Bereichs vertauscht. Damit kann der Bereich dann in jede beliebige Richtung erweitert werden.

Ein markierter Bereich heißt in Emacs Region.

Ausschneiden

Ist bereits Text markiert, kann dieser mit C-w ausgeschnitten werden. Ausgeschnittener Text landet in einem Emacs-eigenen Zwischenspeicher, dem sogenannten Kill Ring. C-w könnte also heißen: control write to kill ring.

Einfügen

Das Gegenstück zum Ausschneiden ist C-y (control yank from kill ring), mit dem eine zuvor ausgeschnittene Region in den Text eingefügt wird. Dabei kann C-y beliebig oft wiederholt werden und fügt immer die zuletzt ausgeschnittene Region ein.

Kopieren

Möchte man eine Region nur kopieren, könnte man sie mittels C-w C-y ausschneiden und direkt wieder an Ort und Stelle einfügen. Da das aber unhandlich ist, gibt es dafür eine Abkürzung: M-w kopiert die Region in den Kill Ring, ohne sie auszuschneiden.

Ausblick

Nach diesem ausführlichen Lauf durch den Buffer wird es im nächsten Artikel vor allem um das Suchen und Finden von Textabschnitten gehen. Stay tuned.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s