Dies ist eine alte Version des Dokuments!
Befehl | Funktion |
i | Einfügemodus |
<ESC> | Befehlsmodus |
:w | speichern |
:q! | beenden ohne speichern |
:wq | speichern und beenden |
:x | speichern und beenden |
u | Rückgängig |
Strg+r | undo Wiederherstellen |
In älteren Vim-Versionen nützlich:
J | hängt die nächste Zeile an das Ende der aktuellen Zeile an (join) |
$ vimtutor
w | ein Wort weiter (word) |
b | ein Wort zurück (back) |
gg | Dateianfang (go) |
10gg | Zeile 10 |
G | Dateiende (go) |
/ | Vorwärts suchen |
? | Rückwärts suchen |
n | Zum nächsten Treffer in gleicher Richtung springen |
N | Zum nächsten Treffer in entgegengesetzter Richtung springen |
d… | ausschneiden |
---|---|
dw | Wort ausschneiden (delete word) |
dd | Zeile ausschneiden |
dj | Zeile und nächste Zeile ausschneiden |
dk | Zeile und vorherige Zeile ausschneiden |
D | bis zum Ende der Zeile ausschneiden |
c… | ersetzen |
cw | Wort ersetzen (change word) |
cc | Zeile ersetzen |
C | bis zum Ende der Zeile ersetzen |
yy | Zeile kopieren |
dd | Zeile ausschneiden |
p | nach aktueller Position einfügen |
P | vor aktueller Position einfügen |
vwy | Wort kopieren |
yw | Wort kopieren |
/ | suchen |
.. Suchwort eingeben ..
v | visueller modus - zeichenweise |
[Shift] v | visueller modus - zeilenweise |
[Strg] v | visueller modus - spaltenweise |
.. Suchwort markieren ..
c | markierten text ändern |
I | einfügen |
d | löschen |
y | kopieren |
.. Ersatzwort eingeben
<ESC> | Änderung beenden |
n | nächster Treffer |
. | letzen Befehl wiederholen |
Befehl | Funktion |
ZZ | speichern & verlassen |
:x | speichern & verlassen |
Befehl | Funktion |
:g/^$/d | Alle Leerzeilen löschen |
:%s/suchwort/ersatz/gc | suchen und ersetzen, mit Bestätigung |
vi -o file1 file2 | horizontaler Split (Fenster wechseln mit Ctrl+W Cursortaste ) |
vi -O file1 file2 | vertikaler Split (Dateien nebeneinander) |
vi -p file1 file2 | Tab-Modus (Dateitabs wechseln mit g t (goto) - T für rückwärts |
:set fdm=expr :set fde=getline(v:lnum)=~'^\\s*#'?1:getline(prevnonblank(v:lnum))=~'^\\s*#'?1:getline(nextnonblank(v:lnum))=~'^\\s*#'?1:0
{ | zum nächsten Absatz |
} | zum vorherigen Absatz |
Vim öffnen:
vim <Datei> - öffnet eine leere Datei mit dem Namen welche ich beim Öffnen angegeben habe vim + <Zeilennummer> + <Datei> - öffnet eine leere Datei mit dem Namen welchen ich angegeben habe und springt in die angegebene Zeile vim . - Ich kann mit die Datei aussuchen welche ich öffnen will. Durch den Punkt werden die Dateien aus dem aktuellen Verzeichnis angezeigt
Modi:
Command Mode:
Im command-Mode haben Befehle den folgenden Aufbau:
[count][command][range]
oder
[command][count][range]
[count] ist Dabei optional. Es gibt an, wie oft [command] oder [range] ausgeführt werden soll.
Mit „range“ bezeichne ich Sprungbefehle. Sie werden benutzt, um sich innerhalb der Datei zu bewegen. Manche commands erwarten keine range.
Die wichtigsten Commands:
d - delete - löschen y - yank - in den zwischenspeicher kopieren yw - Wort kopieren yy - Zeile kopieren 3yy - 3 Zeilen kopieren p - vorher Kopiertes einfügen (put | leichter zu merken ist "paste") P - vorher Kopiertes *vor* dem Cursor einfügen c - change - löschen, und danach in den insert-Modus wechseln shift + J - fügt Zeilen zusammen
Die gebräuchlisten Ranges:
w - Wort vorwärts springen b - Wort rückwärts springen
Beispiele:
w - Wort weiterspringen dw - Wort löschen - command "delete", reichweite "Cursor bis Sprungende" (Wort) einfach zu merken mit "del word" d2w - einmal zwei Worte löschen 2dw - zwei mal ein Wort löschen (gleiches ergebnis wie d2w) 10i- - 10 "-" einfügen (erst beim Wechsel in den command-Mode, da ja der ganze insert-Mode (i) 10 mal ausgeführt wird)
Das ist der grundsätzliche Aufbau, den man mit allen anderen Befehlen kombiniert.
Andere Nützlichkeiten im command-Mode:
. - letzes command wiederholen. cw - Wort austauschen. Wie "dwi". "change word" i - in den insert-Modus wechseln I - in den insert-Modus wechseln und Cursor an den Anfang der Zeile positionieren. Kurz: Wenn man etwas am Anfang der Zeile einfügen will a - append -> wenn man etwas hinter dem Cursor einfügen will A - append -> wenn man etwas am Ende der Zeile einfügen will o - open new line - Leerzeile anfügen + insert-Mode O - open new line - Leerzeile einfügen + insert-Mode ddp - aktuelle Zeile eins nach unten verschieben xp - Buchstaben vertauschen
Bewegen im command-mode / „range“-Befehle:
w - Wort weiter springen W - wie w, überspringt aber mehr (z.B. Kommas) b - Wort zurück springen B - wie b, überspringt aber mehr (z.B. Kommas) e - springt bis zum Ende des Wortes unter dem Cursor E - wie E, überspringt aber mehr (z.B. Kommas) { } - Absatz vor/zurück springen. Sehr praktisch in einer .rhosts! 0 - pos1 $ - ende * - springt vorwärts zum nächsten Vorkommen des Wortes unter dem Cursor # - springt rücwärts zum vorherigen Vorkommen des Wortes unter dem Cursor
Insert Mode:
Insert Modus - wenn unten „insert“ steht. Was man drueckt wird direkt eingefuegt. Verlassen mit ESC
Ex Mode:
:w <Datei> - Speichert es in einer neuen Datei :e . - Eine andere Datei auf dem aktuellen Verzeichnis öffnen :e /etc/passwd - Die Datei passwd öffnen :r /etc/hosts - Den Inhalt der angegebenen Datei an die Cursorposition des offenen Dokuments einlesen :tabnew - Neuen Tab erstellen :tabnext - In den nächsten Tab springen :tabclose - Tab schließen :redo - Holt den Text wieder wenn ich zuviele undos gemacht habe
Suchen und ersetzen:
:1,60 - ersetzen von Reihe 1-60 :1,$ - ganzer Text (bis Textende) :% - ganzer Text (ebenfalls bis Textende) :.,+10 - von der Courser Position an Zehn Zeilen :-5,10
:%s/bash$/sh/ - ersetzt bash wenn es am Ende steht durch sh :%s/bash/sh/ - ersetzt bash durch sh, aber pro Zeile nur den ersten treffen :%s/bash/sh/g - ersetzt bash durch sh, im ganzen Text, auch mehrmals pro Zeile wenn es vorkommt :%s/bash/sh/gc - ersetzt bash druch sh, im ganzen Text, auch mehrmals pro Zeiel wenn es vorkommt und man wird gefragt ob man das ändern will
:%s/^a/A/ - ersetzt alle kleingeschrieben a am Anfang jeder Zeile durch ein A
:help <Befehl> :syntax on - Syntax highlighting :set number :set nonumber :set list - Steuerzeichen anzeigen :set all - Zeigt alle Befehle an in Kombination mit set
Visual Mode:
neben den 3 standard-Modi hat vim noch den Visual mode. Er ist wie normales Markieren mit shift-Cursortasten und wählt einen Bereich aus, den man dann mit commands editieren kann.
v normales markieren V zeilenweises markieren ^V eckiges markieren (block mode)
Bsp: Block auskommentieren im Visual Mode:
Mit Strg-V in den Modus --VISUELL BLOCK-- wechseln. Die Zeilen die auskommentiert werden sollen mit den Cursor Tasten markieren. Mit Shift-I in den Einfüge Modus wechseln. Das Kommentarzeichen (z.B. #) einfügen. ESC drücken um aus dem Modus zu kommen.
Die Zeilen bekommen wie von Zauberhand das '#' Zeichen vorangestellt.
Bsp: Block entkommentieren im Visual Mode:
Mit Strg-V in den Modus --VISUELL BLOCK-- wechseln. Die Zeilen die entkommentiert werden sollen mit den Cursor Tasten markieren. Die Entf Taste drücken. Fertig.
Befehl | SuSE Paket | Debian Paket | CentOS Paket | Beschreibung |
mcedit | mc | mc | Teil vom Midnight Commander | |
nano |