Dies ist eine alte Version des Dokuments!
Befehl | Funktion |
---|---|
i | Einfügemodus (insert) |
<ESC> | Befehlsmodus |
:w | speichern (write) |
:q | beenden (quit) |
:q! | beenden ohne speichern |
:wq | speichern und beenden |
u | Rückgängig (undo) |
Strg+r | undo Wiederherstellen (redo) |
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) |
e | zum nächsten Wortende (end) |
0 | zum Zeilenanfang |
$ | zum Zeileneinde |
gg | Dateianfang (go) |
10gg | Zeile 10 |
G | letzte Zeile |
/ | Vorwärts suchen |
? | Rückwärts suchen |
n | Zum nächsten Treffer in gleicher Richtung springen (next) |
N | Zum nächsten Treffer in entgegengesetzter Richtung springen |
c… | ersetzen (change) |
---|---|
cw | Wort ersetzen (change word) |
cc | Zeile ersetzen |
C | bis zum Ende der Zeile ersetzen |
. | letzten Befehl wiederholen |
/ | suchen |
.. Suchwort eingeben .. | |
cw | 1 Wort ersetzen |
.. Ersatzwort eingeben .. | |
<ESC> | Änderung beenden |
n | zum nächsten Treffer springen |
. | Ersetzung wiederholen |
d… | ausschneiden (delete) |
---|---|
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 |
y… | kopieren (yank) |
yw | Wort kopieren |
yy | Zeile kopieren |
Y | bis zum Ende der Zeile kopieren |
einfügen (paste) | |
P | an aktueller Position einfügen |
p | nach aktueller Position einfügen |
v | Visueller Modus |
V | Visueller Modus, zeilenweise |
Strg+v | Visueller Modus, blockweise |
/ | suchen |
.. Suchwort eingeben .. | |
vwc | 1 Wort ersetzen |
.. Ersatzwort eingeben .. | |
<ESC> | Änderung beenden |
n | zum nächsten Treffer springen |
. | Ersetzung wiederholen |
vim beispiel texte zum Üben
Befehl | Funktion |
ZZ | speichern & verlassen |
:x | speichern & verlassen |
Befehl | Funktion |
---|---|
:%s/suchwort/ersatz/g | suchen und ersetzen, mit Bestätigung |
:g/^$/d | Alle Leerzeilen löschen |
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 |