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