Vi: Unterschied zwischen den Versionen
Aus exmediawiki
C.heck (Diskussion | Beiträge) |
|||
Zeile 114: | Zeile 114: | ||
− | [[Category: | + | [[Category:HowTo]] |
− | [[Category: | + | [[Category:GNU/Linux]] |
− | [[Category: | + | [[Category:Programmierung]] |
+ | [[Category:FLOSS]] | ||
+ | [[Category: Command Line]] |
Aktuelle Version vom 25. Juni 2019, 13:11 Uhr
vi ist ein visueller Texteditor und besitzt drei grundsätzlich unterschiedliche Arbeitsmodi: Den Befehlsmodus, den Einfügemodus und den Kommandozeilenmodus.
Unter Ubuntu und OS X ist vi schon vorinstalliert. Der Nachfolger vim lässt sich etwas einfacher bedienen.
Inhaltsverzeichnis
Befehlsmodus "Esc"
Beim Start von vi befindet man sich im Befehlsmodus. Dort können durch das Drücken verschiedener Tasten einfache Befehle ausgeführt werden, wie z. B. „Wort suchen“, „Zeile löschen“ usw.
Durch Drücken von Esc gelangt man aus anderen Modi in diesen Befehlsmodus zurück. In den neueren Versionen von vi wird der jeweilige Modus unten angezeigt.
Im Dokument bewegen
Neben den Cursor-Pfeiltasten sind u.a. folgende Befehle hilfreich um sich schnell im Dokument zu bewegen:
w Zum nächsten Wort springen b Zum vorherigen Wort bzw. Wortanfang springen e An das Ende des Worts springen ( Einen Satz zurück ) Einen Satz weiter 0 An den Zeilenanfang $ An das Zeilenende G Zur letzten Zeile des Dokuments springen 1G Zur ersten Zeile des Dokuments springen gg Zur ersten Zeile des Dokuments springen (siehe 1G) H oberste Zeile des Bildschirms M mittlere Zeile des Bildschirms L untere Zeile des Bildschirms
Einfügen
Durch Drücken der folgenden Tasten gelangt man vom Befehlsmodus in den Einfügemodus
i Text vor dem Cursor einfügen I Text vor der Zeile einfügen a Text nach dem Cursor einfügen A Text nach der Zeile einfügen o Eine neue Zeile nach der aktuellen Zeile einfügen O Eine neue Zeile vor der aktuellen Zeile einfügen r Ein Zeichen ersetzen R Viele Zeichen ersetzen
Markieren, Kopieren und Einfügen
V Zeile markieren v Zeichen markieren ggVG den gesamten Inhalt markieren v4 4 Zeilen markieren y markierten Bereich in die Zwischenablage legen P Zwischenablage vor aktueller Zeile einfügen p Zwischenablage nach aktueller Zeile einfügen
Löschen
x Zeichen löschen 5x 5 Zeichen löschen X Zeichen links des Cursors löschen D Rest der Zeile ab dem Cursor löschen d0 Rest der Zeile vor dem Cursor löschen dd Aktuelle Zeile löschen 3dd Aktuelle Zeile + 2 darauffolgenden Zeilen löschen dw Wort löschen
Rückgängig
u (undo) Letzte Änderung rückgängig machen U (undo) Alle Änderungen in der Zeile rückgängig machen
Suchen
/ string nach einem string suchen (vorwärts) ? string nach einem string suchen (rückwärts) n nach einem weiteren Treffer für string suchen N nach einem vorherigen Treffer für string suchen
Suchen und Ersetzen
:s/Suchmuster/string/flag Ersetze das Suchmuster durch string, entsprechend des gewählten flags. g (flag) Alle Treffer ersetzen c (flag) Ersetzen der treffer muss bestätigt werden & letzten :s-Befehl wiederholen
z.B.:
:s/alt/neu sucht und ersetzt alt durch neu :s/alt/neu/g sucht und ersetzt alle alt durch neu in der aktuellen Zeile :%s/alt/neu ersetzt im gesamten Dokument
Einfügemodi
In den Einfügemodi ist die eigentliche Eingabe von Text möglich.
i (insert) Eingabe vor dem aktuellen Zeichen. a (append) Eingabe nach dem aktuellen Zeichen. I (Insert) Eingabe am Anfang der aktuellen Zeile. A (Append) Eingabe am Ende der aktuellen Zeile.
Kommandozeilenmodus
Durch Eingabe von : (Doppelpunkt) gelangt man vom Befehlsmodus in den Kommandozeilenmodus. Dort können komplexere Befehle wie etwa zum Suchen und Ersetzen von Text ausgeführt werden.
Öffnen und Speichern
:w file In Datei speichern :r file Datei nach Zeile einfügen :n Zur nächsten Datei springen :p Zur vorherigen Datei springen :e file Datei bearbeiten
:!lp druckt auf dem Defaultprinter des Systems :!lp [-d Druckername] druckt auf angegebenem Drucker :!lp [-d Druckername] [Pfad/Dateiname] druckt eine andere Datei
vi beenden
:x Beenden, Änderungen speichern :wq Beenden, Änderungen speichern ZZ dasselb wie :wq :q Beenden, wenn es keine Änderungen gab :q! Beenden, Änderungen ignorieren :next Die nächste Datei wird geladen, falls vi mit mehreren Dateien aufgerufen wurde. :prev Die vorherige Datei wird geladen, falls vi mit mehreren Dateien aufgerufen wurde.