vi ist der standard-Editor unter Unix und Derivaten.
vi startet standardmäßig im TextModus:
vi FileName
Mit dem Parameter -b startet man ihn im "Binary Mode":
vi -b FileName
Die Darstellung im vi mittels xxd (Hex Dump Tools) als Filter auf die HEX-Ansicht umschalten:
:%!xxd
Einfacher geht es jedoch mit hexdump:
hexdump -C FileName | less
Quick Reference:
In Arbeit - der Inhalt wird übersetzt (en → de).
Zeichen | |
---|---|
h, j, k, l | 1x nach links, unten, oben, rechts |
nh, nj, nk, nl | n-mal nach links, unten, oben, rechts |
Text | |
w, W, b, B | 1 Wort vorwärts, rückwärts |
nw, nW, nb, nB | n-mal Wort vorwärts, rückwärts |
e, E | Ende des Wortes |
), ( | Anfang des nächsten, vorherigen Satzes |
}, { | Anfang des nächsten, vorherigen Paragraphs |
]], [[ | Anfang der nächsten, vorherigen Section |
Zeilen | |
0, $ | Erste, letzte Position in der aktuellen Zeile |
^ | Erstes Zeichen der aktuellen Zeile (Leerstellen ignoriert) |
+, - | Erstes Zeichen der nächsten, vorherigen Zeile |
n| | Position (Spalte) n in der aktuellen Zeile |
H | Obere Bildschirmzeile |
M | Mittlere Zeile des Bildschirms |
L | Untere Bildschirmzeile |
nH n | (Anzahl) Zeilen von oben |
nL n | (Anzahl) Zeilen von unten |
Ganzer Bildschirm/Seite | |
[CTRL-F], [CTRL-B] | Eine Seite vorwärts, rückwärts |
[CTRL-D] [CTRL-U] | Eine halbe Seite nach unten/oben skrollen |
[CTRL-E] [CTRL-Y] | Den Text um eine Zeile nach oben/unten scroll'en |
z [RETURN] | Text nach oben scroll'en, daß die aktuelle Zeile ganz oben steht |
z. | Text so scroll'en, daß die aktuelle Zeile in der Mitte steht |
z- | Text nach unten scroll'en, daß die aktuelle Zeile ganz unten steht |
[CTRL-L] [CTRL-R] | Bildschirminhalt erneut zeichnen (Refresh, ohne zu skrollen) |
Suche | |
/pattern | Nach dem Muster pattern suchen - vorwärts |
?pattern | Nach dem Muster pattern suchen - rückwärts |
n, N | Letzte Suche mit / oder ? fortsetzen: n - in gleicher Richtung, N - in Gegenrichtung |
fx | Zeichen x in der selben Zeile vorwärts suchen |
Fx | Zeichen x in der selben Zeile rückwärts suchen |
tx | Zeichen vor x in der selben Zeile vorwärts suchen |
Tx | Zeichen nach x in der selben Zeile rückwärts suchen |
; | Letzte Suche in der selben Zeile wiederholen |
' | Letzte Suche in der selben Zeile in Gegenrichtung wiederholen |
Zeilennummer | |
[CTRL-G] | |
nG | Zu der Zeile n springen |
G | Zu der letzten Zeile im File springen |
:n | Zu der Zeile n springen |
Marking position | |
mx | Markierung x setzen (erlaubt sind die Buchstaben a-z und A-Z) |
`x | Cursor zur Markierung x |
`` | |
'x | Springt zur Zeile mit dem Marker x |
'' |
Insert | |
---|---|
i, a | Text vor/nach dem Cursor einfügen/anhängen |
I, A | Text am Anfang/Ende der akuellen Zeile einfügen |
o, O | Eine leere Zeile unter/über dem Cursor hinzufügen |
Change | |
r | Ein einziges Zeichen ersetzen |
cw | Ein Wort ersetzen |
cc | Ersetzt aktuelle Zeile durch den neuen Text |
C | Ersetzt Text ab der aktuellen Position bis zum Ende der Zeile durch den neuen Text |
R | Im Überschreiben-Modus schreiben |
s | Löscht das aktuelle Zeichen und wechselt in den Eingabe (insert) Modus |
S | Löscht die aktuelle Zeile und wechselt in den Eingabe (insert) Modus |
Delete, move | |
x | Ein Zeichen (am Cursor) löschen (so, wie es normalerweise die [Delete]-Taste tut) |
X | Löscht ein Zeichen vor dem Cursor (so, wie es die [Backspace]-Taste tut) |
dw | |
dd | Aktuelle Zeile komplett löschen |
D | In der aktuellen Zeile bis zum EOL löschen |
p, P | |
"np | |
Yank | |
yw | Yank (copy) word |
yy | Yank current line |
"ayy | Yank current line into named buffer a |
p, P | Put yanked text after, before cursor |
"aP | Put text from buffer a before cursor |
Other commands | |
. | Letztes edit-Kommando wiederholen |
u, U | Letztes edit-Kommando rückgängig machen; Aktuelle Zeile wiederherstellen |
J | Aktuelle Zeile mit der nächsten Zeile vereinen |
ex edit commands | |
:d | Zeilen löschen |
:m | Zeilen verschieben |
:co or :t | Zeilen kopieren |
:.,$d | Löschen ab der aktuellen Zeile bis zum Ende des Files |
:30,60m0 | Verschieben von Zeilen 30 bis 60 zum Anfang des Files |
:.,/pattern/co$ | Copy from current line through line containing pattern to end of file |
ZZ | File speichern und Editor verlassen |
:x | -- // -- |
:wq | -- // -- |
:w | File speichern |
:w! | File speichern (Schreibschutz ignorieren) |
:30,60w newfile | Zeilen 30 bis 60 in ein anderes File speichern |
:30,60w» file | Zeilen 30 bis 60 am Ende eines anderen Files hinzufügen |
:w %.new | |
:q | Editor verlassen |
:q! | Editor verlassen ohne zu speichern |
Q | |
:e file2 | Ein weiteres File file2 editieren ohne aktuelles File zu verlassen |
:n | Zum nächsten File wechseln (beim Editieren von mehreren Files gleichzeitig) |
:e! | Zurück zur Version des aktuellen Files am Zeitpunkt des letzten Speicherns |
:e# | |
% | |
# |
vi [dir] file | Das File namens "file" mit vi editieren (oder neu erstellen) im Verzeichnis dir (wenn die Datei im aktuellen Verzeichnis erstellt werden soll, lässt man Verzeichnis weg) |
vi file1 file2 | Files "file1" und "file2" mit vi parallel editieren |
view file | Das File "file" im read-only Modus öffnen |
vi -R file | -- // -- |
vi -r file | Recovery-Aktion nach Programm- oder Systemabsturz |
vi + file | File öffnen und zu der letzten Zeile "springen" |
vi +n file | File öffnen und zu der Zeile Nummer n "springen" |
vi +/pattern file | Öffnet eine Datei namens file an der Zeile in der das Suchmuster pattern das erste mal auftritt |
ex file |
Abbreviations 1) | |
---|---|
:map x sequence | Define keystroke x as a command sequence |
:map! x sequence | Define x as command sequence for insert mode |
:unmap x | Disable the map x |
:unmap! x | Disable insert mode map x |
:ababbr phrase | Abbreviate phrase as abbr; when abbr is typed in insert mode, it expands to full words or phrases |
:unab abbr | Disable abbreviation |
Customizing environment: 2) | |
:set option | Activate option |
:set option=value | Assign value to option |
:set nooption | Deactivate option |
:set | Display options set by user |
:set all | Display list of all current options, both default and those set by the user |
:set option? | Display value of option |
: | Invoke ex from vi editor |
:vi | Invoke vi editor from ex |
:sh | Invoke shell |
^D | Return to editor from shell |
:! command | Give UNIX command |
:r newfile | Read contents of newfile into current file |
:r !command | Read output of UNIX command into current file |
Über vi in Wikipedia lesen.
Kurzanleitung zum vi im PDF-Format.
Noch eine gute Anleitung: http://de.wikibooks.org/wiki/Vi-Befehlsreferenz:_Bearbeitung
Stand: 16.05.2013 - in Arbeit
EOF