Aaron Fischer Ingenieur, Vater, Heimwerker, Problemlöser

04 September, 2009

Absatzweise

TL;DR:

Um effektiv mit längeren Texten zu arbeiten, gibt es einige Tastenkürzel, mit denen man sich schnell im Text bewegen kann. Dies eignet sich besonders für LaTeX-Dokumente, aber auch Sourcecode. Aber auch die Struktur des Textes sollte überlegt sein.

Zuerst einmal sollte man sich überlegen, ob man Zeilenumbrüche innerhalb von Absätzen macht, oder ob jede Zeile ein Absatz darstellt und man den Umbruch dynamisch vom Editor machen lässt. Zeilenumbrüche in einem Absatz haben mehrere Vorteile: Die Navigation durch den Text gestaltet sich viel einfacher, da man jede Zeile mit hjkl erreichen kann und auch das Markieren funktioniert viel besser. Allerdings wird das nachträgliche Editieren etwas unschön, da man hier ständig neu Umbrechen muss.

Um sich das Leben etwas zu vereinfachen, gibt es für beide Varianten eine nützliche Option.

set linebreak
set textwidth=80

Die erste Option bricht das Wort nicht mitten im Wort um, sondern an Wortgrenzen, so wie man das auch aus Office-Programmen oder einem Textarea-Feld im Browser her kennt. Die zweite Option stellt die Umbruchgrenze auf 80 Zeichen und bricht die Worte an dieser Stelle um und fügt einen Zeilenumbruch ein.

Schreibt man nun ein paar Absätze und ändert dann an ein paar Stellen etwas um, muss man den Textblock neu einrücken. Hierzu gibt es in Vim natürlich auch einen Befehl.

Zuerst selektiert man den Textbereich und drückt dann gq. Je nach dem wie die Option textwidth eingestellt ist, wird der Text neu formatiert.

Nun aber zu den Shortcuts zur Navigation im Text (Normal Mode): Was vermutlich schon bekannt ist, sind w und b um wortweise vor oder zurückzuspringen. Mit ( und ) kann man von Satz zu Satz springen, mit { und } über ganze Absätze hinweg. Mit G springt man zum Ende des Dokuments, mit gg an den Anfang.

Die meisten Befehle funktionieren auf ähnliche Weise mit Sourcecode. Mit ( und ) kann man von Funktion zu Funktion springen, w, b, G und gg arbeiten analog.

Notiz auf dem CheatSheet: