Vim/Anwendung: Unterschied zwischen den Versionen
Markierung: Ersetzt |
|||
Zeile 1: | Zeile 1: | ||
'''topic''' - Kurzbeschreibung | '''topic''' - Kurzbeschreibung | ||
== | === Einführung === | ||
Der Editor vi (visual) ist ein bildschirmorientierter Editor, das heißt der Text ist in seiner aktuellen Version auf dem Bildschirm zu sehen | |||
Vim verfügt über drei verschiedene Arbeitsmodi | |||
* Diese werden im folgenden kurz beschrieben | |||
* Die wichtigsten Tastenkürzel zur Arbeit mit dem Vim werden im Artikel Vim/Shortcuts erläutert | |||
Nach dem Aufruf des vi befindet sich der Benutzer im Kommandomodus | |||
* Die Arbeit spielt sich wie beim ed immer in zwei Ebenen ab | |||
; Kommandomodus | |||
* Freies Positionieren innerhalb des Textes | |||
* Umsetzen von Textblöcken | |||
* Schreiben und Lesen von Dateien | |||
* Löschen von Textblöcken und Aufruf von UNIX-Kommandos | |||
'''Eingabemodus''' | |||
* Einfügen von Text | |||
* Überschreiben vorhandener Textpassagen | |||
* Das Umschalten zwischen den Modi erfolgt mit der [ESC]-Taste | |||
* Die Handhabung des Kommandomodus des vi macht die Bedienung für den Anfänger etwas ungewohnt | |||
* Die Cursorpositionierung erfolgt mit verschiedenen Tasten, für die Eingabe von Dateibefehlen oder anderen Funktionen (z. B. Suchen/ersetzen) ist die Eingabe eines Doppelpunktes nötig | |||
* Man befindet sich dann in ex-Modus, der ähnliche Eigenschaften hat, wie der Editor ed | |||
==== Starten ==== | |||
'''vi [Dateiname]''' | |||
* Ist die Datei vorhanden, wird sie in den Editorpuffer geladen, andernfalls wird sie neu angelegt | |||
* Wird der vi ohne die Angabe eines Dateinamens gestartet, ist der Bildschirm auf der linken Seite mit Tilden (~) gefüllt | |||
* Jede leere Zeile hinter dem Ende der Datei wird auf diese Art dargestellt | |||
* Am unteren Ende des Bildschirms wird der Dateiname anzeigt, falls eine existierende Datei angegeben wurde | |||
** Die Größe der Datei wird ebenfalls angezeigt | |||
** Wenn diese Informationen nicht angezeigt werden, könnte es sein, dass der Terminaltyp falsch gesetzt ist | |||
** Dann sollte der vi mit :q! und [ENTER] verlassen und der Terminaltyp korrekt eingestellt werden | |||
Falls die angegebene Datei nicht existiert, wird auf folgende Art angezeigt, dass es sich um eine neue Datei handelt | |||
"newfile" [New file] | |||
Nach dem Start ohne Dateinamen, ist die unterste Bildschirmzeile leer | |||
==== Hilfen ==== | |||
{|class="wikitable sortable" | |||
|- | |||
| | '''man vi''' | |||
| | Manualpage von '''vi''' aufrufen | |||
|- | |||
| | ''':h <Stichwort>''' | |||
| | Hilfe aufrufen (mit :q verlassen) | |||
|- | |||
| | '''vimtutor''' | |||
| | Lernprogramm | |||
|- | |||
|} | |||
==== Befehlsmodus ==== | |||
; Nach dem Aufruf befindet sich Vim im Befehlsmodus | |||
Vergleichbar mit Klicken durch die Menüs eines grafischen Programms | |||
{| class="wikitable options" | |||
! Tastenkürzel !! Aktion | |||
|- | |||
| j || Schritt abwärts | |||
|- | |||
| k || Schritt aufwärts | |||
|- | |||
| h || Schritt nach links | |||
|- | |||
| l || Schritt nach rechts | |||
|- | |||
| dd || löscht eine komplette Zeile an der Cursorposition | |||
|- | |||
| u || macht letzte Änderung rückgängig | |||
|- | |||
| STRG + R || macht u rückgängig | |||
|- | |||
| ZZ || speichert die Datei und beendet Vim | |||
|} | |||
==== Einfügemodus ==== | |||
Befindet sich der Vim im Einfügemodus, so kann der Text nach Belieben editiert werden | |||
{| class="wikitable options" | |||
! Tastenkürzel !! Aktion | |||
|- | |||
| i || Editiermodus an der Cursorposition starten | |||
|- | |||
| a || Editiermodus eine Stelle hinter der Cursorposition starten | |||
|- | |||
| o || Zeile unterhalb der Cursorposition einfügen und Editiermodus starten | |||
|- | |||
| ESC || Editiermodus verlassen | |||
|} | |||
==== Kommandozeilenmodus ==== | |||
Neben Befehlen, die zum Bewegen durch die Datei oder deren Modifikation dienen, kann man im Kommandozeilenmodus auch Parameter des Programms selber ändern, Dateien laden und/oder (Shell-) Befehle ausführen | |||
* Das Verhalten ist mit einer Mini-Kommandozeile vergleichbar | |||
{| class="wikitable options" | |||
! Tastenkürzel !! Aktion | |||
|- | |||
| :w || Datei speichern | |||
|- | |||
|:w name || Datei unter name speichern | |||
|- | |||
| :q! || Vim ohne Speichern beenden | |||
|- | |||
| /ausdruck || Datei nach ''ausdruck'' durchsuchen | |||
|- | |||
| :e ''dateiname'' || Datei ''dateiname'' öffnen | |||
|- | |||
| :e # || zur zuvor bearbeiteten Datei zurückkehren | |||
|} | |||
==== Cursorpositionierung ==== | |||
Normalerweise ist der '''vi''' an die Pfeiltasten der Tastatur richtig angepasst | |||
* Daneben gibt es noch folgende Möglichkeiten (Auswahl) | |||
{|class="wikitable opt2 sortable" | |||
|- | |||
| | '''h ''' | |||
| | Zeichen links (auch Backspace) | |||
|- | |||
| | '''l ''' | |||
| | Zeichen rechts (auch blank) | |||
|- | |||
| | '''k ''' | |||
| | Zeile höher | |||
|- | |||
| | '''j ''' | |||
| | Zeile tiefer | |||
|- | |||
| | '''b ''' | |||
| | Wortanfang | |||
|- | |||
| | '''e ''' | |||
| | Wortende | |||
|- | |||
| | '''w ''' | |||
| | Anfang nächstes Wort | |||
|- | |||
| | '''H ''' | |||
| | Anfang erste Zeile des Bildschirms | |||
|- | |||
| | '''L ''' | |||
| | Anfang letzten Zeile des Bildschirms | |||
|- | |||
| | '''0 (Null) ''' | |||
| | Zeilenanfang | |||
|- | |||
| | '''$ ''' | |||
| | Zeilenende | |||
|- | |||
| | '''RETURN ''' | |||
| | nächste Zeile | |||
|- | |||
| | <u>'''''n''</u>G ''' | |||
| | (''Go'') Gehe zu Zeile <u>'''''n'''''</u></tt>. <tt><u>'''''n'''''</u> ist eine Zeilennummer | |||
* Fehlt die Zahl, wird zur letzten Zeile der Datei gesprungen | |||
|- | |||
| | '''%''' | |||
| | sucht zur aktuellen Klammer die korrespondierende öffnende oder schließende Klammer | |||
|- | |||
| | '''(''' | |||
| | Cursor zum Anfang des Satzes bewegen | |||
|- | |||
| | ''')''' | |||
| | Cursor zum Anfang des nächsten Satzes bewegen | |||
|- | |||
| | '''{''' | |||
| | Cursor zum Anfang des Absatzes bewegen | |||
|- | |||
| | '''}''' | |||
| | Cursor zum Anfang des nächsten Absatzes bewegen | |||
|- | |||
|} | |||
=== Befehls-Modus === | |||
[[Vim/Anwendungen/Befehls-Modus]] | |||
=== Tipps und Tricks === | |||
==== Zeile verschieben ==== | |||
* Zeile mit '''dd''' löschen | |||
* Zur neuen Position wechseln | |||
* mit p (hinter dem Cursor)''' ''' | |||
* '''P''' (vor dem Cursor) einfügen | |||
==== Zeile kopieren ==== | |||
* Zeile mit '''yy''' in den Puffer kopieren | |||
* Zur neuen Position wechseln | |||
* Zeile mit p (vor dem Cursor) | |||
* oder P (nach dem Cursor) einfügen | |||
==== Ein paar einfache Tricks ==== | |||
* zwei '''aufeinander folgende Zeichen vertauschen: xp''' | |||
* zwei aufeinander folgende Zeilen vertauschen: '''ddp''' | |||
* eine Zeile duplizieren: '''yyp''' | |||
==== Mehrere Zeilen verschieben oder kopieren ==== | |||
Mehrere Zeilen werden durch Voranstellen der Zeilenzahl vor '''dd''' oder '''yy''' in den Puffer gebracht. Alles Weitere wie oben | |||
==== Weitere Puffer ==== | |||
* Neben dem anonymen Puffer können 26 weitere Pufferbereiche verwendet werden, die durch einen Buchstaben ("a" - "z") bezeichnet werden | |||
*Dazu wird ein Doppelapostroph und der Puffername vor den Befehl gestellt, zum Beispiel | |||
{|class="wikitable sortable" | |||
|- | |||
| | '''"ayy''' | |||
| | kopiere Zeile in Puffer '''a''' | |||
|- | |||
| | '''"b6yy''' | |||
| | kopiere die nächsten 6 Zeilen in Puffer '''b''' | |||
|- | |||
| | '''"ap''' | |||
| | Inhalt Puffer '''a''' nach dem Cursor einfügen | |||
|- | |||
|} | |||
==== Blöcke von einer Datei in die andere übertragen ==== | |||
* Mit dem Kommando ''':e <dateiname>''' kann eine neue Datei bearbeitet werden, ohne den vi zu verlassen | |||
* vi mit der ersten Datei aufrufen, z. B. : '''vi foo.txt''' | |||
* Textblock mit den Yank-Kommando in einen Puffer schreiben: '''"f10yy'''</tt> (10 Zeilen in Puffer <tt>'''f''') | |||
* neue Datei holen, z. B. : ''':e bar.txt ''' | |||
* an die gewünschte Stelle gehen und Puffer einfügen''': "fp ''' | |||
== Installation == | == Installation == | ||
== Syntax == | == Syntax == |
Version vom 15. Oktober 2024, 10:39 Uhr
topic - Kurzbeschreibung
Einführung
Der Editor vi (visual) ist ein bildschirmorientierter Editor, das heißt der Text ist in seiner aktuellen Version auf dem Bildschirm zu sehen
Vim verfügt über drei verschiedene Arbeitsmodi
- Diese werden im folgenden kurz beschrieben
- Die wichtigsten Tastenkürzel zur Arbeit mit dem Vim werden im Artikel Vim/Shortcuts erläutert
Nach dem Aufruf des vi befindet sich der Benutzer im Kommandomodus
- Die Arbeit spielt sich wie beim ed immer in zwei Ebenen ab
- Kommandomodus
- Freies Positionieren innerhalb des Textes
- Umsetzen von Textblöcken
- Schreiben und Lesen von Dateien
- Löschen von Textblöcken und Aufruf von UNIX-Kommandos
Eingabemodus
- Einfügen von Text
- Überschreiben vorhandener Textpassagen
- Das Umschalten zwischen den Modi erfolgt mit der [ESC]-Taste
- Die Handhabung des Kommandomodus des vi macht die Bedienung für den Anfänger etwas ungewohnt
- Die Cursorpositionierung erfolgt mit verschiedenen Tasten, für die Eingabe von Dateibefehlen oder anderen Funktionen (z. B. Suchen/ersetzen) ist die Eingabe eines Doppelpunktes nötig
- Man befindet sich dann in ex-Modus, der ähnliche Eigenschaften hat, wie der Editor ed
Starten
vi [Dateiname]
- Ist die Datei vorhanden, wird sie in den Editorpuffer geladen, andernfalls wird sie neu angelegt
- Wird der vi ohne die Angabe eines Dateinamens gestartet, ist der Bildschirm auf der linken Seite mit Tilden (~) gefüllt
- Jede leere Zeile hinter dem Ende der Datei wird auf diese Art dargestellt
- Am unteren Ende des Bildschirms wird der Dateiname anzeigt, falls eine existierende Datei angegeben wurde
- Die Größe der Datei wird ebenfalls angezeigt
- Wenn diese Informationen nicht angezeigt werden, könnte es sein, dass der Terminaltyp falsch gesetzt ist
- Dann sollte der vi mit :q! und [ENTER] verlassen und der Terminaltyp korrekt eingestellt werden
Falls die angegebene Datei nicht existiert, wird auf folgende Art angezeigt, dass es sich um eine neue Datei handelt
"newfile" [New file]
Nach dem Start ohne Dateinamen, ist die unterste Bildschirmzeile leer
Hilfen
man vi | Manualpage von vi aufrufen |
:h <Stichwort> | Hilfe aufrufen (mit :q verlassen) |
vimtutor | Lernprogramm |
Befehlsmodus
- Nach dem Aufruf befindet sich Vim im Befehlsmodus
Vergleichbar mit Klicken durch die Menüs eines grafischen Programms
Tastenkürzel | Aktion |
---|---|
j | Schritt abwärts |
k | Schritt aufwärts |
h | Schritt nach links |
l | Schritt nach rechts |
dd | löscht eine komplette Zeile an der Cursorposition |
u | macht letzte Änderung rückgängig |
STRG + R | macht u rückgängig |
ZZ | speichert die Datei und beendet Vim |
Einfügemodus
Befindet sich der Vim im Einfügemodus, so kann der Text nach Belieben editiert werden
Tastenkürzel | Aktion |
---|---|
i | Editiermodus an der Cursorposition starten |
a | Editiermodus eine Stelle hinter der Cursorposition starten |
o | Zeile unterhalb der Cursorposition einfügen und Editiermodus starten |
ESC | Editiermodus verlassen |
Kommandozeilenmodus
Neben Befehlen, die zum Bewegen durch die Datei oder deren Modifikation dienen, kann man im Kommandozeilenmodus auch Parameter des Programms selber ändern, Dateien laden und/oder (Shell-) Befehle ausführen
- Das Verhalten ist mit einer Mini-Kommandozeile vergleichbar
Tastenkürzel | Aktion |
---|---|
:w | Datei speichern |
:w name | Datei unter name speichern |
:q! | Vim ohne Speichern beenden |
/ausdruck | Datei nach ausdruck durchsuchen |
:e dateiname | Datei dateiname öffnen |
:e # | zur zuvor bearbeiteten Datei zurückkehren |
Cursorpositionierung
Normalerweise ist der vi an die Pfeiltasten der Tastatur richtig angepasst
- Daneben gibt es noch folgende Möglichkeiten (Auswahl)
h | Zeichen links (auch Backspace) |
l | Zeichen rechts (auch blank) |
k | Zeile höher |
j | Zeile tiefer |
b | Wortanfang |
e | Wortende |
w | Anfang nächstes Wort |
H | Anfang erste Zeile des Bildschirms |
L | Anfang letzten Zeile des Bildschirms |
0 (Null) | Zeilenanfang |
$ | Zeilenende |
RETURN | nächste Zeile |
nG | (Go) Gehe zu Zeile n. n ist eine Zeilennummer
|
% | sucht zur aktuellen Klammer die korrespondierende öffnende oder schließende Klammer |
( | Cursor zum Anfang des Satzes bewegen |
) | Cursor zum Anfang des nächsten Satzes bewegen |
{ | Cursor zum Anfang des Absatzes bewegen |
} | Cursor zum Anfang des nächsten Absatzes bewegen |
Befehls-Modus
Tipps und Tricks
Zeile verschieben
- Zeile mit dd löschen
- Zur neuen Position wechseln
- mit p (hinter dem Cursor)
- P (vor dem Cursor) einfügen
Zeile kopieren
- Zeile mit yy in den Puffer kopieren
- Zur neuen Position wechseln
- Zeile mit p (vor dem Cursor)
- oder P (nach dem Cursor) einfügen
Ein paar einfache Tricks
- zwei aufeinander folgende Zeichen vertauschen: xp
- zwei aufeinander folgende Zeilen vertauschen: ddp
- eine Zeile duplizieren: yyp
Mehrere Zeilen verschieben oder kopieren
Mehrere Zeilen werden durch Voranstellen der Zeilenzahl vor dd oder yy in den Puffer gebracht. Alles Weitere wie oben
Weitere Puffer
- Neben dem anonymen Puffer können 26 weitere Pufferbereiche verwendet werden, die durch einen Buchstaben ("a" - "z") bezeichnet werden
- Dazu wird ein Doppelapostroph und der Puffername vor den Befehl gestellt, zum Beispiel
"ayy | kopiere Zeile in Puffer a |
"b6yy | kopiere die nächsten 6 Zeilen in Puffer b |
"ap | Inhalt Puffer a nach dem Cursor einfügen |
Blöcke von einer Datei in die andere übertragen
- Mit dem Kommando :e <dateiname> kann eine neue Datei bearbeitet werden, ohne den vi zu verlassen
- vi mit der ersten Datei aufrufen, z. B. : vi foo.txt
- Textblock mit den Yank-Kommando in einen Puffer schreiben: "f10yy (10 Zeilen in Puffer f)
- neue Datei holen, z. B. : :e bar.txt
- an die gewünschte Stelle gehen und Puffer einfügen: "fp