Der vi, kurz für ‚Visual Interface‘, ist ein bildschirmorientierter Texteditor, der auf allen Terminals verwendet werden kann. Er ist sehr schlank, startet sehr schnell und benötigt zudem wenig Speicherplatz. Daher gilt er schon lange als der Standarseditor unter UNIX-Systemen. Allerdings sorgt er mit seinen drei Arbeitsmodi und vielen Kommandos vor allem bei Neueinsteigern für Frust. Ich habe hier einmal eine kleine Kommandoübersicht zusammen gestellt, sie lässt sich nicht nur für den vi sondern auch für die meisten vi-Klone wie den vim anwenden:
Modi
Eingabe-Modus |
vi-Modus |
ex-Modus |
vi-Modus -> Eingabe-Modus
A,a |
append |
anhängen Ende Zeile/Zeichen |
C,co |
change |
ersetze Restzeile/Objekt |
I,i |
insert |
einsetzen Anfang Zeile/Zeichen |
O,o |
open |
neue Zeile vor/nach dieser |
R,r |
replace |
ersetze laufenden Text/Zeichen |
S,s |
substitute |
ersetze Zeile/Zeichen |
Eingabe-Modus -> vi-Modus
im Eingabe-Modus
STRG + I |
nächster Tabstop |
STRG + T |
nächster Shiftstop |
STRG + D |
vorheriger Shiftstop |
^ STRG + D |
keine Einrückung |
° STRG + D |
Einrückung löschen |
STRG + V |
STRG-Zeichen im Text |
STRG + H |
lösche Zeichen |
STRG + U |
lösche Zeile |
STRG + W |
lösche Wort |
im vi-Modus
k |
nach oben |
j |
nach unten |
h |
nach links |
l |
nach rechts |
S |
Zeilenende |
^ |
Textanfang |
0 |
Zeilenanfang |
ma |
markiere Stelle mit a |
`a |
springe zur Stelle mit a |
‚a |
springe zur Zeile mit a |
W,w |
zum nächsten Wort |
B,b |
Anfang des Wortes |
E,e |
Ende des Wortes |
; |
wiederhole Position vorwärts |
, |
wiederhole Position rückwärts |
dd |
ganze Zeile löschen |
ndd |
n Zeilen löschen |
dw |
Wort löschen |
ndw |
n Worte löschen |
do |
lösche Objekt "o" |
x |
lösche Zeichen |
D |
lösche Rest der Zeile |
yy |
Zeile kopieren |
nyy |
n Zeilen kopieren |
yw |
Wort kopieren |
p |
einfügen |
J |
zeile verbinden |
"ayo |
kopiere "o" in den Dauerspeicher a |
"ap |
setze den Dauerspeicher a ein |
rz |
ersetze Zeichen durch "z" |
r + ENTER |
teile diese Zeile |
>o |
rücke ein um Shiftweite |
<o |
rücke zurück um Shiftweite |
. |
letzte Änderung wiederholen |
u |
letzte Änderung rückgängig machen |
z. |
Cursorzeile wird Mitte |
z- |
Cursorzeile wird letzte Zeile |
z + ENTER |
Cursorzeile wird erste Zeile |
(,) |
Anfang/Ende des Satzes |
{,} |
Anfang/Ende des Absatzes |
[[,]] |
Anfang/Ende des Abschnitts |
fz |
nächstes "z" |
Fz |
voriges "z" |
/muster |
Suche "muster" vorwärts |
?muster |
Suche "muster" rückwärts |
N,n |
voriges/nächstes "muster" suchen |
STRG + E |
Zeile runter |
STRG + Y |
Zeile rauf |
STRG + D |
1/2 Seite ab |
STRG + U |
1/2 Seite auf |
STRG + F |
Seite runter |
STRG + B |
Seite rauf |
STRG + L |
Bildschirm neu |
H |
erste Zeile |
M |
mittlere Zeile |
L |
letzte Zeile |
G |
letzte Textzeile |
nG |
n-te Textzeile |
n! |
n-te Spalte |
n + ENTER |
n Zeilen weiter |
im ex-Modus
:w |
speichern |
:wq |
speichern und Ende |
:q! |
Ende ohne Speichern |
:e! |
alles neu von Anfang an |
:pre |
Dateizustand sichern |
:g/muster |
alle Zeilen mit "muster" |
:v/muster |
alle Zeilen ohne "muster" |
:r name |
Datei "name" einsetzen |
:f name |
Datei "name" für Datei |
:e name |
neue Datei bearbeiten |
:!kommando |
"kommando" durch Shell |
:sh |
Subshell; STRG + D zurück |
:%s/-/+/g |
alle "-" gegen "+" ersetzen |
:g/-/d |
alle Zeilen mit "-" löschen |
DEL STRG + C |
abbruch eines Befehls |
Web-Links / Literatur[1] http://img129.imageshack.us/img129/7892/vimcheatsgermankeyboard56dd.png kleine grafische Hilfestellung