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) |
w | ein Wort weiter (word) |
b | ein Wort zurück (back) |
gg | Dateianfang (go) |
10gg | Zeile 10 |
G | Dateiende (go) |
/ | suchen |
dw | Wort löschen (delete word) |
dd | Zeile löschen |
D | bis zum Ende der Zeile löschen |
cw | Wort ändern (change word) |
cc | Zeile ändern |
C | bis zum Ende der Zeile ändern |
yy | Zeile kopieren |
dd | Zeile ausschneiden |
P | 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 |
Vim öffnen:
vim <Datein> - öffnet mir eine leere Datei mit dem Namen welche ich beim öffnen angegeben habe vim + <Zeilennummer> + <Datei> - öffnet mir 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
Modis:
- Command/normal mode - Insert mode (zum normalen schreiben) - Ex mode (das was man kriegt, wenn man im command-mode „:“ drückt) - Visual mode
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
Suche:
/<was ich suche> (vorwärts) (mit n zum nächsten, mit strg + n zum vorherigen) ?<was ich suche> (rückwärts suche)
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 :tabnew - Neuen Tab erstellen :tabnext - In den nächsten Tab springen :tabclose - Tab schließen :redo - Holt mir meinen 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
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 | Fedora Paket | Beschreibung |
mcedit | mc | mc | Teil vom Midnight Commander | |
e3ne | e3 | e3 | ||
aee | aee | |||
zile | zile | zile | zile is lossy emacs, emacs ohne lisp |