vi oder nicht...

Wie viele andere Entscheidungen in der Open-Source-Welt, ist auch die Wahl des Programms zum Schreiben von Texten oder Code mehr als nur die Wahl eines Werkzeuges. Sie ist Ausdruck einer Philosophie, manchmal auch Ideologie, bei der es nur "richtig" oder "falsch" geben kann ;-o

Folglich werde ich mich hüten, irgendeine Wertung oder gar Präferenz auszusprechen... Tatsache ist aber, dass es unter den sogenannten Editoren zwei große Gruppen gibt, nämlich die Emacs- und die vi-Benutzer.

Auf der Suche nach dem richtigen Editor möchte ich hier lediglich eine kurze Referenz über die nicht immer intuitiv zu bedienenden Tastenkombinationen meines Favoriten geben.


 Anfang und Ende
vimvim in der Kommandozeile starten
:qvim beenden

 Umgang mit Dateien
:editDatei öffnen
:waktuelle Datei speichern
:waalle offenen Dateien speichern
:rInhalt einer anderen Datei einfügen
:waktuelle Datei unter neuem Namen speichern

 Hilfe
:helpalle Hilfe-Optionen zeigen
:help zeichenalle Funktionen mit dieser Zeichenfolge zeigen
:help tastendie Funktion zu dieser Tastenkombination zeigen
:help funktiondie Funktion beschreiben
:help modusden aktuellen Modus beschreiben
:qHilfe-Fenster entfernen

 "Notmaßnahmen"
C-cVorgang unterbrechen
uletzten Befehl rückgängig machen
MCursor-Position zur Mitte der Bildschirmanzeige machen

 Suchen
/vorwärts suchen
?rückwärts suchen

 Cursorbewegungen
hein Zeichen zurück
lein Zeichen vor
bein Wort zurück
wein Wort vor
keine Zeile zurück
jeine Zeile vor
0zum Zeilenanfang
$zum Zeilenende
(zum Satzanfang
)zum Satzende
ggzum Dateianfang
Gzum Dateiende
C-fscrollt eine Bildschirmseite nach unten
C-bscrollt eine Bildschirmseite nach oben

 Text löschen
xZeichen löschen
diwWort löschen
d$Zeile bis zum Ende löschen
dGDatei bis zum Ende löschen
dggDatei bis zum Anfang löschen

 Ersetzen
Rinteraktiv ersetzen
:s/foo/bar/regulären Ausdruck in der Zeile ersetzen
:%s/foo/bar/gregulären Ausdruck in der ganzen Datei ersetzen
:%s/foo/bar/gcvor dem Ersetzen nachfragen
 Optionen während dieses Vorgangs:
yersetzen
nnicht ersetzen und zum nächsten Treffer gehen
aersetzen und dann alle bleibenden Treffer ersetzen
qnicht ersetzen und dann den Vorgang beenden

 Umgang mit mehreren Fenstern
:onlyalle Fenster außer dem mit dem Cursor unsichtbar
:splitFenster vertikal teilen
:vsplitFenster horizontal teilen
C-win anderes Fenster wechseln

 Groß-/Kleinschreibung
gUwWort in Großbuchstaben
guwWort in Kleinbuchstaben
gUUZeile in Großbuchstaben
guuZeile in Kleinbuchstaben

 Buffer
:buffer nranderen Buffer auswählen
lsalle Buffer anzeigen
:bdelete nrBuffer löschen

 Shell-Kommandos
:!kommandoShell-Kommando ausführen
:.!kommandoShell-Kommando für Zeile ausführen

 Tastatur-Makros
:mapMakro-Definition