|
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 |