|
|
Zeile 28: |
Zeile 28: |
|
| |
|
| = TMP = | | = TMP = |
| === 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 '''
| |
|
| |
| [[Kategorie:vim]] | | [[Kategorie:vim]] |