Vim Editor Kurzreferenz

(GFDL, Winfried Mueller, www.reintechnisch.de, Start: 15.03.2004, Stand 16.12.2004)


Vim für Faule - Minimalistischer Befehlsvorrat

Befehlsmodus

KommandoBeschreibung
iInsertmodus, damit kann man editieren
Cursortastennavigieren
h, j, k, lnavigieren, wenn Cursortasten tod sind
Gletzte Zeile Dokument
nGgehe zu Zeile n
ddZeile löschen (in Zwischenablage)
yyZeile in Zwischenablage
nyyn Zeilen in Zwischenablage
pZwischenablage einfügen unterhalb
/MusterSuche nach Muster
nSuche wiederholen
set icUmschalten Suche "ignore case"
set noicUmschalten Suche case sensitiv
:1,$s/from/to/gcErsetze from nach to im ganzen Dokument mit Nachfrage
Strg+GAktuelle Zeilennummer und Dateiname anzeigen
:nNächste Datei bearbeiten
:rewVorherige Datei bearbeiten
:wDatei speichern
:qEditor verlassen
uUndo
.letzte Änderung wiederholen

Editiermodus

KommandoBeschreibung
ESCzurück in Befehlsmodus
Cursortastennavigieren

Vim Auführlicher

Navigieren

KommandoBeschreibung
Cursortastennavigieren
h, j, k, lnavigieren, wenn Cursortasten tod sind
1Gerstes Zeile Dokument
Gletzte Zeile Dokument
nGGehe zu Zeile n (Bsp: 20G)
0erstes Zeichen Zeile, wie Pos1
$letztes Zeichen Zeile
wNächstes Wort. Anfang des Wortes. (auch W)
bVorheriges Wort. Anfang des Wortes. (auch B)
eNächstes Wort, Wortende. (auch E)
)Nächster Satz.
(Vorheriger Satz.
}Nächster Absatz.
{Vorheriger Absatz.
ReturnErstes nichtleeres Zeichen nächste Zeile
n|Spalte n aktuelle Zeile
Strg-F/Page-DownSeite vorwärts.
Strg-B/Page-UpSeite rückwärts.

Suchen und Ersetzen

/MusterSuche nach Muster
?MusterSuche nach Muster rückwärts
nletzte Suche wiederholen
%Passende Klammer suchen
:s/from/to/Ersetze erstes Auftreten von from in Zeile
:s/from/to/g(g=global) Ersetze alle from durch to in Zeile
:x,y s/from/to/von x bis y, siehe auch Hinweise
:s/from/to/gicg=global, i=ignorecase, c=nachfragen
:1,$s/from/to/gcErsetze from nach to im ganzen Dokument mit Nachfrage

Markierungen

mx(x=a..z), Setze Markierung x
'xGehe zu Markierung x, Zeilenanfang
`xGehe zu Markierung

Löschen und Zwischenablage

xZeichen löschen
nxn Zeichen nach rechts löschen
nXn Zeichen nach links löschen
ddaktuelle Zeile löschen
nddn Zeilen löschen
d/MusterLöschen bis Muster
dwLöschen Wort
DRest der aktuellen Zeile löschen
d^Löschen bis Zeilenanfang
dGLöschen bis Datei Ende
"xddZeile löschen und in Puffer x
pZwischenablage einfügen unterhalb
PZwischenablage einfügen oberhalb
"xpInhalt von Puffer x einfügen
yyZeile in Zwischenablage
nyyn Zeilen in Zwischenablage
ywWort in Zwischenablage
y$Rest der Zeile in Zwischenablage
"xyyZeile in Zwischenpuffer x kopieren

Moduswechsel

iEdit vor dem Cursor
AAnhängen Zeilenende
oNeue Zeile unter der Aktuellen.
ONeue Zeile über den Aktuellen
CÄndere bis Zeilenende
cwÄndere Wort
ccÄndere aktuelle Zeile
s(substitute) Zeichen löschen und in insert Modus
S(substitute line) Zeile löschen und insert Modus

Speichern und Beenden

KommandoBeschreibung
:wabspeichern
:qverlassen
:q!verlassen, Änderungen verwerfen
:wqspeichern & verlassen
:xspeichern wenn nötig und verlassen
:w DateiDatei unter neuem Namen speichern
:w!speichern, auch wenn Schreibschutz
%aktueller Dateiname, z.B. :w %.old

Arbeiten mit mehreren Dateien

KommandoBeschreibung
:nNächste Datei bearbeiten
:rewVorherige Datei bearbeiten
:n DateienNeue Liste von Dateien angeben, die editiert werden sollen
:args oder :arListe der editierten Dateien anzeigen

Shellinteraktion

KommandoBeschreibung
:r DateiDatei an Cursorposition einfügen
:r !BefehlBefehlsausgabe einfügen
:!Befehl ausführen und zurückkehren
n1,n2!BefehlZeilen an Befehl senden und durch Ausgabe ersetzen
n!!BefehlNächste n Zeilen an Befehl und durch Ausgabe ersetzen
strg-zEditor in Hintergrund, wiederholen mit fg

Sonstiges

uUndo
Strg-GDateinamen und Zeilennummer anzeigen
.letzte Änderung wiederholen
~Groß/Kleinschreibung umdrehen
J(join) Aktuelle Zeile mit folgender vereinen
>>Zeile nach rechts schieben
<<Zeile nach links schieben
n<< oder n>>n Zeilen nach links/rechts schieben
>'x oder <'xZeilen bis Label x nach rechts/links schieben
>} oder <}bis zum Absatzende nach rechts/links schieben
%Sprung zwischen Klammerpaar, wenn man auf Klammer steht

Möglichkeiten im Editiermodus

KommandoBeschreibung
ESCzurück in Befehlsmodus
Cursortastennavigieren

Ex-Befehle (:Befehle)

KommandoBeschreibung
:ab Abk StringAbk wird beim tippen immer durch String ersetzt.
:set allAlle gesetzten Optionen anzeigen
:set aiautoindent
:set icignorecase für Suche
:set sw=nshiftwidth Anzahl Spaces bei >> und << Befehlen
:set ts=ntabstop festlegen
:syntax onSyntax Highlighting einschalten
:helpEingebaute Hilfe
:set mouse=aMausunterstützung einschalten

Konfigurations-Dateien

  • in Konfigurationsdateien werden hauptsächlich set-Befehle eingebunden, um das Verhalten des Editors anzupassen. Es ist jedoch auch noch viel mehr möglich, Vim hat eine mächtige Konfigurationssprache mit bedingten Verzweigungen.
  • ~/.vimrc - hier kann jeder Benutzer persönliche Anpassungen vornehmen.
  • /etc/vimrc - für globale Einstellungen für alle Benuzter
  • Alles hinter doppelten Anführungsstrichen ist Kommentar (gewöhnungsbedürftig)

Aufruf in der Shell

  • Start mit einer Datei
    vi datei
  • Start mit mehreren Dateien
    vi datei1 datei2 ...
  • Start mit einer Datei, Positionierung auf Zeile n
    vi +n datei
  • Start von vim, wenn dieser nicht der Standard-Editor ist
    vim datei
  • Start des vim auf grafischer Benutzeroberfläche
    gvim datei

Hinweise

  • um bei ex-Befehlen (:Befehle) Zeilenbereiche anzugeben, gibt es folgende Möglichkeiten:
    • x,y als numerischer Wert bezeichnet die Zeilennummer
    • $ steht für letzte Zeile
    • % steht für alle Zeilen einer Datei
    • 'a,'b von Label a bis Label b
    • ohne Angabe wird die aktuelle Zeile verwendet
    • x, x-n von x bis x-n, auch x+n ist möglich
    • /Muster/ vorwärts bis zur nächsten Zeile, die Muster enthält
    • ?Muster? rückwärts bis zur Zeile, die Muster enthält
  • mit :set option schaltet man eine Option ein mit :set nooption wieder aus, z.B. :set ic oder :set noic

Links