Login Form






Passwort verloren?
Befehlssammlung vi PDF Drucken E-Mail
Geschrieben von Carola 'Cat' Helfert   
eine umfassende Befehlssammlung zum mächtigsten Editor unter *ix Systemen und SFU

vi - Befehlssammlung

warum vi (visual editor) wird sich der eine oder andere nun fragen. Nun, die Sache ist Recht einfach, vi ist der einzige Editor der auf jedem UNIX Derivat und bei jeder linux Distribution dabei ist. Dies soll eine kleine Übersicht über die gängigsten Kommandos sein ;). Aber Achtung, dieser Artikel basiert auf dem vi und nicht auf dem vim, der heute anstelle des vi in den linux Distributionen implementiert ist. vim hat im Vergleich zum vi einen erweiterten Befehlssatz.

1. Aufrufen und Verlassen von vi

vi [Optionen] [Datei]
view [Optionen] Datei
Editor aufrufen und erste Datei einlesen (view = vi -R).

Dabei gibt es diese Optionen:

-r [Datei]

Datei nach einem Editor- oder Systemabsturz rekonstruieren
-R
Datei wird nur gelesen, und nur auf ausdrücklichen Wunsch ("!") verändert
+
Editieren beginnt am Dateiende, statt am Anfang
+n
Editieren beginnt in Zeile n
+Kommando 
Statuszeilen-Kommando (Erklärung in 2.) wird nach Aufruf des Editors und vor Beginn des Editierens ausgeführt.
 
 
ZZ
Sichern und Editor beenden 
:wq
Sichern und Editor beenden 
:x
Sichern und Editor beenden 
:q
Editor beenden
:q!
Editor beenden und die Änderungen verwerfen 
Q
vom vi-Modus in den Ex-Modus umschalten (Erklärung in 2.)
:
Ex-Modus für genau einen Befehl einschalten
:vi
vom Ex-Modus in den vi-Modus umschalten

2. vi Arbeitsmodi

Kommandomodus:

Kommandoeingabe und Positionierung (am Anfang per default eingeschalten)
Eingabemodus:
Text einfügen, ersetzen oder überschreiben
Statuszeilenmodus:
Dateimanipulations- (ex-) und Suchkommandos

wichtig an der Stelle ist insbesondere, dass man den Eingabemodus durch das drücken der <ESC> Taste beendet

3.Curser Positionierung

zeichenweise: 

oder l oder <Leerzeichen>

Eine Position nach rechts
oder h oder <BS> oder <CTRL+h>
Eine Position nach Links
oder k oder <CTRL+p>
Eine Position nach Oben (gleiche Spalte)
oder j oder <CTRL+n>
Eine Position nach Unten (gleiche Spalte)

Alle Befehle können mehrfach ausgeführt werden, indem man einfach eine Zahl vor das Zeichen setzt. z.B. 30l = 30 Zeichen nach rechts.

wortweise: 

W

Anfang des nächsten Wortes oder Sonderzeichen
W
Anfang des nächsten Wortes
B
Anfang des (vorigen) Wortes oder Sonderzeichens
B
Anfang des (vorigen) Wortes
E
Ende des (nächsten) Wortes oder Sonderzeichens
E
Ende des (nächsten) Wortes

Auch diese Kommandos können mehrfach ausgeführt werden. z.B. 5W für 5 Worte vorwärts.

zeilenbezogen: 

^

Anfang der aktuellen Zeile (erstes sichtbares Zeichen)
0
Anfang der aktuellen Zeile (erstes Zeichen)
$
Ende der aktuellen Zeile
<n>|
Position n der aktuellen Zeile
-
Eine Zeile nach oben, zum ersten sichtbaren Zeichen
+ oder <CR> oder <CTRL+M>
Eine Zeile nach unten, zum ersten sichtbaren Zeichen

 

grössere Bereiche:  

H

An den Anfang des Bildschirms
<n>H
An die n-te Zeile des Bildschirms
M
In die Mitte des Bildschirms
L
Zur letzen Zeile des Bildschirms
<n>L
n-te Zeile des Bildschirms von unten
)
Nächster Satz (Satzende: !, ? oder . plus Zeilenvorschub oder 2 Leerzeichen)
(
Vorhergehender Satz
G
Anfang der letzten Zeile
<n>G
Anfang der Zeile n

- oder + oder <CR> oder ( oder ) können mehrfach ausgeführt werden, z.B. 5- für 5 Zeilen zurück

4. Verändern des Bildschirmausschnittes

<CTRL+f> oder z+

Nächste Seite
<CTRL+b>
Vorherige Seite
<CTRL+y>
Bildschirm um eine Zeile rückwärts rollen
<CTRL+e>
Bildschirm um eine Zeile vorwärts rollen

Diese Befehle können mehrfach ausgeführt werden, z.B.: 5<CTRL+e> 5 Zeilen vorwärts rollen.

[<n>]<CTRL+d>

n Zeilen vorwärts rollen
[<n>]<CTRL+u>
n Zeilen rückwärts rollen

Standardeinstellung fün n ist hier 11 oder der zuletzt eingegebene Wert.

[<n>]z<CR>

Zeile n wird erste Bildschirmzeile
[<n>]z-
Zeile n wird letzte Bildschirmzeile
[<n>]z.
Zeile n wird mittlere Bildschirmzeile

Standardeinstellung für n ist die aktuelle Zeile.

5. Objekte textverändernder Kommandos

Diese hier gelisteten "Objekte" werden beim Textbearbeiten immer wieder verwendet.

L

Ein Zeichen vorwärts
H
Ein Zeichen rückwärts
W
Ein Wort oder Sonderzeichen ab Cursor vorwärts
W
Ein Wort (durch Leerzeichen getrennt) vorwärts
B
Ein Wort oder Sonderzeichen ab Cursor rückwärts
B
Ein Wort (durch Leerzeichen getrennt) rückwärts
E
Bis Wortende oder Sonderzeichen ab Cursor vorwärts
E
Bis Wortende vorwärts
^
Zeilenanfang (erstes sichtbares Zeichen) bis Cursor
0
Zeilenanfang bis Cursor
$
Cursor bis Zeilenende
)
Satzanfang vorwärts
(
Satzanfang rückwärts
Suchkommando
Aktuelle Position bis gefundene Stelle

6. Löschen

X

Zeichen unter dem Cursor löschen (=di)
<n>x
n Zeichen löschen
X
Zeichen vor dem Cursor löschen (=dh)
<n>X
n Zeichen vor dem Cursor löschen
dObjekt
Objekt löschen (siehe 5.)
<n>dObjekt
n Objekte löschen
Dd
Zeile löschen
<n>dd
n Zeilen löschen
D
Rest der Zeile löschen (=d$)
"<c>dObjekt
Objekt löschen und im Puffer c sichern (c = a. ...,z)

7. Suchen

Zeichen suchen:  

Fx

x in der Zeile vorwärts suchen
Fx
x in der Zeile rückwärts suchen
Tx
x in der Zeile vorwärts suchen, Cursor vor das Zeichen
Tx
x in der Zeile rückwärts suchen, Cursor hinter das Zeichen
;
Wiederholung des letzten Suchbefehls (f,F,t,T)
,
wie „;" aber in umgekehrter Richtung
%
Entsprechende Klammer zu oder auf suchen

Zeichenfolge suchen:  

/Zeichenfolge

Zeichenfolge vorwärts suchen
?Zeichenfolge
Zeichenfolge rückwärts suchen
/
Vorwärts suchen (Zeichenfolge vom letzen / oder ? Kommando)
?
Wie / aber rückwärts
n
Letztes Suchen wiederholen (/ oder ?)
N
Letztes Suchen in umgekehrter Richtung wiederholen
%
Entsprechende Klammer zu oder auf suchen

8. Suchen und Ersetzten

:s/alt/neu/

Erste Zeichenfolge „alt" in der Zeile durch „neu" ersetzen
:s/alt/neu/g
Alle Zeichenfolgen „alt" in der Zeile durch „neu" ersetzen
:1,$s/alt/neu/g
Alle Zeichenfolgen „alt" in der Datei durch „neu" ersetzen
:1,$s/alt/neu/gc
Interaktiv alle Zeichenfolgen „alt" in der Datei durch „neu" ersetzen

9. Kopieren von Texteilen

yObjekt

Objekt im Arbeitspuffer sichern
yy oder Y
Eine Zeile im Arbeitspuffer sichern
<n>yObjekt
n Objekte im Arbeitspuffer sichern
"<c>yObjekt
Objekt im Puffer c sichern (c = a, ...,z)
"<c><n>yObjekt
n Objekte im Puffer c sichern
P
Gesicherten, bzw. zuletzt gelöschten Text nach Cursor Position einfügen
P
Gesicherten, bzw. zuletzt gelöschten Text vor Cursor Position einfügen
"<c>p
Gesicherten Text aus Puffer c nach Cursor Position einfügen
"<c>P
Gesicherten Text aus Puffer c vor Cursor Position einfügen

10. Aufheben von Änderungen

u

Letzte Änderung aufheben
U
Änderung in einer Zeile Aufheben
"<n>p oder "<n>P
Gelöschten Text wieder einfügen (n= 1: zuletzt gelöschter, 2: als vorletzes gelöschter, ...9)

11. Text einfügen und Überschreiben

a

Nach dem Cursor einfügen
A
Am Zeilenende einfügen
i
Vor dem Cursor einfügen
I
Am Zeilenanfang einfügen
o
Zeile nach der aktuellen Zeile einfügen
O
Zeile vor der aktuellen Zeile einfügen
R
Text bis zur Eingabe von <ESC> einfügen
cObjekt
Objekt durch Eingabe ersetzen
<n>cObjekt
n Objekte durch Eingabe ersetzen
C
Text ab Cursor bis zum Zeilenende ersetzen (=c$)
cc
Zeile durch Eingabe ersetzen
<n>cc
n Zeilen durch Eingaben ersetzen
s
Aktuelles Zeichen durch Eingabe ersetzen (=cl)
<n>s
n Zeichen durch Eingabe ersetzten
S
Zeile durch Eingabe ersetzen (=cc)


Kommandos während der Eingabe: 

<BS> oder <CTRL+h>

Zuletzt eingegebenes Zeichen wieder löschen
<CTRL+w>
Zuletzt eingegebenes Wort wieder löschen
<CTRL+x>
Zuletzt eingegebene Zeile wieder löschen
<TAB>
Tabulieren
<CR>
Neue Zeile einfügen
<CTRL+d>
Rückpositionierung über automatischen Einzug
<CTRL+v>
Quot-Zeichen für Steuerzeichen
<ESC> oder <DEL>
Eingabemodus beenden

12. weitere vi Kommandos

.

Letzte Änderung wiederholen
[n]r<x>
Zeichen unter dem Cursor duch x ersetzten (default: n=1)
[n]>>
Zeile nach rechts verschieben
[n]<<
Zeile nach links verschieben
[n]J
Zeilen zusammenfügen (default: n=2)
m<c>
Merken der aktuellen Zeile in c (c=a,...,z)
<CTRL+g>
Aktueller Dateiname, Zeilennummer, Anzahl Zeilen

13. vi Einstellungen

Kommandos: 

:se Option

Option setzten
:se Option=Wert
Option einen Wert geben
:se no Option
Option aufheben
:se Option?
Option abfragen
:se all
Optionen auflisten
Optionen: (Auswahl) 

Name

Standard
Bedeutung
Ai
Noai
Automatischer Einzug
Ap
Ap
Veränderungen von Zeilen werden sofort angezeigt
Aw
Noaw
Automatisches Sichern der Datei bei :n, :rew, :!
Dir
dir=/tmp
Verzeichnis für Editor-Puffer
Ic
Noic
Keine Unterscheidung zwischen Gross- und Kleinbuchstaben bei regulären Ausdrücken
List
nolist
Alle Zeichen werden sichtbar dargestellt
nu
Nonu
Zeilennumerierun
report
report=5
Statusmeldung, wenn mehr als 5 Zeilen verändert werden
scroll
scroll=11
Scrollanzahl von <CTRL+d> und <CTRL+u>
sw
sw=8
Verschiebewert bei <<, >>
ts
ts=8
Tabulatorabstand
term
Term=$TERM
Terminaltyp
wa
nowa
Überschreiben einer existierenden Datei mit :w Datei
paste
nopaste
Einfügen von grösseren Textbausteinen unter Beibehaltung der Formatierung

14. weitere ex Kommandos

:e [Datei]

Laden der angegebenen Datei in den vi Puffer
:e! [Datei]
Überschreiben des vi Puffers
:e#
Editieren der zuletzt bearbeiteten Datei
:e+ Datei
Editieren der Datei, der Cursor steht am Dateiende
:e+n Datei
Editieren der Datei, der Cursor steht auf Zeile n
:f [Datei]
Änderung des aktuellen Dateinamens oder Anzeige de aktuellen Dateinamens (wie <CTRL+g>)
:n
Editieren der nächsten Datei aus der Dateiliste des Aufrufs
:args
Aktuelle Dateiliste anschauen
:rew
Dateililste nochmal setzen
:n Argument
Festlegen einer neuen Dateiliste
:n!
Überschreiben des vi Puffers
:[z]r Datei
Anfügen der Datei an die aktuelle Zeile oder an Zeile z (wenn z=0 an Dateianfang)
:[z]r! Kommando
Anfügen der *ix Kommandoausgabe an die aktuelle Zeile oder Zeile z
:! Kommando
Ausführen des *ix Kommandos
:!!
Wiederholen des letzen *ix Kommandos
:sh
Start einer neuen shell
:so Datei
Ex-Befehle aus Datei ausführen
:[<n>,<m>]w
Änderungen sichern mit dem aktuellen Dateinamen
:w Datei
Änderungen in die angegebene Datei sichern
:w! Datei
Überschreiben der angegebenen Datei

15. Quelle

vi Editor kurz und gut o'reilly Verlag
ISBN 3-89721-213-7

© Carola ‚Cat' Helfert, unterwegs-im.net 2005

 
< Zurück   Weiter >
© 2012 Unterwegs im Net
Joomla! is Free Software released under the GNU/GPL License.