Vim Editor Kurzreferenz
(GFDL, Winfried Mueller, www.reintechnisch.de, Start: 15.03.2004, Stand 16.12.2004)
Vim für Faule - Minimalistischer Befehlsvorrat
Befehlsmodus
Kommando | Beschreibung |
i | Insertmodus, damit kann man editieren |
Cursortasten | navigieren |
h, j, k, l | navigieren, wenn Cursortasten tod sind |
G | letzte Zeile Dokument |
nG | gehe zu Zeile n |
dd | Zeile löschen (in Zwischenablage) |
yy | Zeile in Zwischenablage |
nyy | n Zeilen in Zwischenablage |
p | Zwischenablage einfügen unterhalb |
/Muster | Suche nach Muster |
n | Suche wiederholen |
set ic | Umschalten Suche "ignore case" |
set noic | Umschalten Suche case sensitiv |
:1,$s/from/to/gc | Ersetze from nach to im ganzen Dokument mit Nachfrage |
Strg+G | Aktuelle Zeilennummer und Dateiname anzeigen |
:n | Nächste Datei bearbeiten |
:rew | Vorherige Datei bearbeiten |
:w | Datei speichern |
:q | Editor verlassen |
u | Undo |
. | letzte Änderung wiederholen |
Editiermodus
Kommando | Beschreibung |
ESC | zurück in Befehlsmodus |
Cursortasten | navigieren |
Vim Auführlicher
Navigieren
Kommando | Beschreibung |
Cursortasten | navigieren |
h, j, k, l | navigieren, wenn Cursortasten tod sind |
1G | erstes Zeile Dokument |
G | letzte Zeile Dokument |
nG | Gehe zu Zeile n (Bsp: 20G) |
0 | erstes Zeichen Zeile, wie Pos1 |
$ | letztes Zeichen Zeile |
w | Nächstes Wort. Anfang des Wortes. (auch W) |
b | Vorheriges Wort. Anfang des Wortes. (auch B) |
e | Nächstes Wort, Wortende. (auch E) |
) | Nächster Satz. |
( | Vorheriger Satz. |
} | Nächster Absatz. |
{ | Vorheriger Absatz. |
Return | Erstes nichtleeres Zeichen nächste Zeile |
n| | Spalte n aktuelle Zeile |
Strg-F/Page-Down | Seite vorwärts. |
Strg-B/Page-Up | Seite rückwärts. |
Suchen und Ersetzen
/Muster | Suche nach Muster |
?Muster | Suche nach Muster rückwärts |
n | letzte 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/gic | g=global, i=ignorecase, c=nachfragen |
:1,$s/from/to/gc | Ersetze from nach to im ganzen Dokument mit Nachfrage |
Markierungen
mx | (x=a..z), Setze Markierung x |
'x | Gehe zu Markierung x, Zeilenanfang |
`x | Gehe zu Markierung |
Löschen und Zwischenablage
x | Zeichen löschen |
nx | n Zeichen nach rechts löschen |
nX | n Zeichen nach links löschen |
dd | aktuelle Zeile löschen |
ndd | n Zeilen löschen |
d/Muster | Löschen bis Muster |
dw | Löschen Wort |
D | Rest der aktuellen Zeile löschen |
d^ | Löschen bis Zeilenanfang |
dG | Löschen bis Datei Ende |
"xdd | Zeile löschen und in Puffer x |
p | Zwischenablage einfügen unterhalb |
P | Zwischenablage einfügen oberhalb |
"xp | Inhalt von Puffer x einfügen |
yy | Zeile in Zwischenablage |
nyy | n Zeilen in Zwischenablage |
yw | Wort in Zwischenablage |
y$ | Rest der Zeile in Zwischenablage |
"xyy | Zeile in Zwischenpuffer x kopieren |
Moduswechsel
i | Edit vor dem Cursor |
A | Anhängen Zeilenende |
o | Neue Zeile unter der Aktuellen. |
O | Neue 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
Kommando | Beschreibung |
:w | abspeichern |
:q | verlassen |
:q! | verlassen, Änderungen verwerfen |
:wq | speichern & verlassen |
:x | speichern wenn nötig und verlassen |
:w Datei | Datei unter neuem Namen speichern |
:w! | speichern, auch wenn Schreibschutz |
% | aktueller Dateiname, z.B. :w %.old |
Arbeiten mit mehreren Dateien
Kommando | Beschreibung |
:n | Nächste Datei bearbeiten |
:rew | Vorherige Datei bearbeiten |
:n Dateien | Neue Liste von Dateien angeben, die editiert werden sollen |
:args oder :ar | Liste der editierten Dateien anzeigen |
Shellinteraktion
Kommando | Beschreibung |
:r Datei | Datei an Cursorposition einfügen |
:r !Befehl | Befehlsausgabe einfügen |
:! | Befehl ausführen und zurückkehren |
n1,n2!Befehl | Zeilen an Befehl senden und durch Ausgabe ersetzen |
n!!Befehl | Nächste n Zeilen an Befehl und durch Ausgabe ersetzen |
strg-z | Editor in Hintergrund, wiederholen mit fg |
Sonstiges
u | Undo |
Strg-G | Dateinamen 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 <'x | Zeilen 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
Kommando | Beschreibung |
ESC | zurück in Befehlsmodus |
Cursortasten | navigieren |
Ex-Befehle (:Befehle)
Kommando | Beschreibung |
:ab Abk String | Abk wird beim tippen immer durch String ersetzt. |
:set all | Alle gesetzten Optionen anzeigen |
:set ai | autoindent |
:set ic | ignorecase für Suche |
:set sw=n | shiftwidth Anzahl Spaces bei >> und << Befehlen |
:set ts=n | tabstop festlegen |
:syntax on | Syntax Highlighting einschalten |
:help | Eingebaute Hilfe |
:set mouse=a | Mausunterstü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