www.mschrader.net *[ *Links / Startseite <../index.html>* ] * *[ *Impressum <../impressum.html>* ] * *[ *Linux Befehlsübersicht * ] * *[ *Linux Gruppenverwaltung * ] * *[ *Vim* ] * Texteditor Vim (Kurzanleitung) *Vim*the editor [»] Stand: März 2009 Texteditor Vim (Kurzanleitung) als HTML / PDF / ODT Datei. PDFGet *Adobe* Reader [»] OOoOpen*Office.org* [»] Inhalt * Allgemein <#Allgemein> ↓ * Bedienung <#Bedienung> ↓ * Vim starten <#Vim_starten> ↓ * Einfügemodus <#Einfuegemodus> ↓ * Einfügemodus - Tastaturbefehle <#Einfuegemodus-Tastaturbefehle> ↓ * visueller Modus <#visueller_Modus> ↓ * Befehlsmodus / normaler Modus <#Befehlsmodus> ↓ * Befehlsmodus - Text in den Speicher legen (kopieren) <#Befehlsmodus-Text_kopieren> ↓ * Befehlsmodus - Text löschen (ausschneiden) <#Befehlsmodus-Text_ausschneiden> ↓ * Befehlsmodus - Text einfügen <#Befehlsmodus-Text_einfuegen> ↓ * Befehlsmodus - Text ändern <#Befehlsmodus-Text_aendern> ↓ * Befehlsmodus - Text suchen <#Befehlsmodus-Text_suchen> ↓ * Befehlsmodus - Tipps <#Befehlsmodus-Tipps> ↓ * Kommandozeilenmodus <#Kommandozeilenmodus> ↓ * Kommandozeilenmodus - Befehle <#Kommandozeilenmodus-Befehle> ↓ * Kommandozeilenmodus - Hilfe <#Kommandozeilenmodus-Hilfe> ↓ * Kommandozeilenmodus - Einstellungen <#Kommandozeilenmodus-Einstellungen> ↓ nach oben <#top> ↑ Allgemein Vi ist für die Wartung aller Unix-Systeme gedacht und ist auf jedem, noch so minimalem System installiert. Er ist für die Textkonsole konzipiert und daher ohne Maus zu bedienen. Zweck der minimalistischen Bedienung des Editors ist es, auch über eine langsame Netzverbindung Textdateien auf einem fremden Rechner bearbeiten zu können. Vim (Vi IMproved) ist eine erweiterte Open-Source-Version des urheberrechtlich geschützten Vi. Unter Linux startet Vim wenn *vi* oder *vim* aufgerufen wird. nach oben <#top> ↑ Bedienung Der Texteditor Vi stammt aus einer Zeit, in der es auf den meisten Tastaturen noch keinen Cursorblock gab, also weder Pfeiltasten, noch "Pos1"- und "Ende"-Tasten. Deshalb sind für alle Kommandos Buchstaben vorgesehen. Da man mit den Buchstaben aber auch Text eingeben möchte, gibt es mehrere Betriebsmodi. Grundsätzlich befindet sich Vim nach dem Aufrufen im Befehlsmodus. Mit den Tasten *a i o r v :* und *Esc* oder *Enter* kann man zwischen den einzelnen Modi umschalten: *Einfügemodus* *(insert mode)* ↑ ↓ ↑ *a i A I o O R* ↓ *Esc* ↑ ↓ *v V* *Befehlsmodus / normaler Modus* *(command mode / normal mode)* →→→→→→ ←←←←←← *visueller Modus* *(visual mode)* ↓ ↑ *v V* oder 2 mal *Esc* ↓ *:* ↑ *Esc* oder *Enter* ↓ ↑ *Kommandozeilenmodus* *(command-line mode)* nach oben <#top> ↑ Vim starten vi oder vim started Vim und öffnet eine Datei zum bearbeiten nach oben <#top> ↑ Einfügemodus Die folgenden Tasten wechseln vom Befehlsmodus in den Einfügemodus: a (append) Text nach dem Cursor einfügen i (insert) Text vor dem Cursor einfügen A (append) Text am Zeilenende einfügen I (insert) Text am Zeilenanfang einfügen o Text in neue leere Zeile einfügen (unterhalb / nach der aktuellen Zeile) O Text in neue leere Zeile einfügen (oberhalb / vor der aktuellen Zeile) R (replace) Text vor dem Cursor überschreiben nach oben <#top> ↑ Einfügemodus - Tastaturbefehle Pfeiltasten Cursor nach links, unten, oben, rechts Ende Cursor zum Zeilenende Pos1 Cursor zum Zeilenanfang Entf löscht Text ab Cursor (nach rechts) Rücktaste löscht Text links vom Cursor Esc verlässt den Einfügemodus und wechselt zurück in den Befehlsmodus nach oben <#top> ↑ visueller Modus v wechselt in den visuellen Modus V wechselt in den visuellen Modus und markiert zusätzlich die aktuelle Zeile Im visuellen Modus können Textbereiche auf einfache Weise markiert, kopiert oder ausgeschnitten werden. Pfeiltasten Textbereich markieren Ende , $ bis zum Zeilenende Pos1 , ^ bis zum Zeilenanfang w (word forward) markiert nach rechts bis zum nächsten Wortanfang e (end of word) markiert nach rechts bis zum nächsten Wortende b (word backward) markiert nach links bis zum vorherigen Wortanfang y (yank into register) kopiert markierten Bereich x (cut) schneidet markierten Bereich aus d (delete) schneidet markierten Bereich aus p (paste) fügt kopierten oder ausgeschnittenen Bereich ein 1 mal Esc (escape) hebt Textmarkierung auf 2 mal Esc (escape) verlässt den visuellen Modus und wechselt zurück in den Befehlsmodus nach oben <#top> ↑ Befehlsmodus / normaler Modus Pfeiltasten Cursor nach links, unten, oben, rechts h , j , k , l Cursor links, unten, oben, rechts w (word forward) Cursor nach rechts zum nächsten Wortanfang e (end of word) Cursor nach rechts zum nächsten Wortende b (word backward) Cursor nach links zum vorherigen Wortanfang nw Cursor nach rechts zum n'ten Wortanfang (n muss eine Zahl sein) ne Cursor nach rechts zum n'ten Wortende (n muss eine Zahl sein) nb Cursor nach links zum n'ten Wortanfang (n muss eine Zahl sein) Ende , $ Cursor zum Zeilenende Pos1 , ^ Cursor zum Zeilenanfang ) zum nächsten Satzende ( zum vorherigen Satzende (ein Satz endet mit *. ? !* plus Leerzeichen) } zum nächsten Absatzende { zum vorherigen Absatzende (ein Absatz endet mit einer Leerzeile) % springt zum nächsten Klammernpaar innerhalb der aktuellen Zeile H (home) geht zur ersten Zeile M (middle line) geht zur mittleren Zeile L (last line) geht zur letzten Zeile gg (goto first line) geht zur ersten Zeile G (goto last line) geht zur letzten Zeile nG (goto line) geht zu Zeile n (n muss eine Zahl sein) + (plus) geht 1 Zeile nach unten - (minus) geht 1 zeile nach oben n+ , nEnter (plus) geht n Zeilen nach unten (n muss eine Zahl sein) n- (minus) geht n zeilen nach oben (n muss eine Zahl sein) Bild abwärts , Strg + f (forward) springt eine Seite vorwärts Bild aufwärts , Strg + b (backward) springt eine Seite zurück Strg + d (down) springt eine halbe Seite vorwärts Strg + u (up) springt eine halbe Seite zurück Strg + w dann s (split) teilt das Fenster horizontal Strg + w dann v (vertical) teilt das Fenster vertikal Strg + w dann + (plus) vergrößert das aktuelle Fenster Strg + w dann - (minus) verkleinert das aktuelle Fenster Strg + w dann w (window) springt zum nächsten Fenster Strg + w dann p (previous) springt zum vorherigen Fenster Strg + w dann Pfeiltaste springt zum nächsten / vorherigen Fenster entsprechend der Pfeilrichtung Strg + w dann r (rotate) verschiebt das aktuelle Fenster nach unten, bzw. rechts Strg + w dann R (rotate) verschiebt das aktuelle Fenster nach oben, bzw. links Strg + w dann = teilt die Höhe und Breite alle Fenster gleichmäßig auf Strg + w dann _ maximiert das aktuelle Fenster in der Höhe Strg + w dann 1_ minimiert das aktuelle Fenster in der Höhe Strg + w dann | maximiert das aktuelle Fenster in der Breite Strg + w dann 1| minimiert das aktuelle Fenster in der Breite Strg + w dann q (quit) schließt das aktuelle Fenster Strg + w dann o (other) schließt alle Fenster, bis auf das aktuelle . (Punkt) wiederholt die letzte Texteingabe u (undo) mach die letzte Änderung rückgängig U (undo) macht alle Änderungen in der aktuellen Zeile rückgängig Strg + r (redo) nimmt die letzte rückgängig gemachte Änderung wieder zurück Strg + R (redo) nimmt alle rückgängig gemachten Änderungen in der aktuellen Zeile wieder zurück nach oben <#top> ↑ Befehlsmodus - Text in den Speicher legen (kopieren) Wenn nach dem y ein Buchstabe eingegeben wird, der den Cursor bewegt, markiert das einen Bereich von der aktuellen Cursorposition bis zu der Stelle an die der Cursor gesprungen wäre. Dieser Bereich wird in den Pufferspeicher gelegt, jedoch nicht markiert dargestellt ! Die kopierten Textbereiche können danach an anderer Stelle eingefügt werden. yw (yank word forward into register) kopiert nach rechts bis zum nächsten Wortanfang ye (yank end of word) kopiert nach rechts bis zum nächsten Wortende yb (yank word backward) kopiert nach links bis zum vorherigen Wortanfang nyw nach rechts bis zum n'ten Wortanfang (n muss eine Zahl sein) nye nach rechts bis zum n'ten Wortende (n muss eine Zahl sein) nyb nach links bis zum n'ten Wortanfang (n muss eine Zahl sein) y$ bis zum Zeilenende y^ bis zum Zeilenanfang y) bis zum nächsten Satzende y} bis zum nächsten Absatzende yy kopiert die aktuelle Zeile nyy kopiert von der aktuellen Zeile nach unten bis zur n'ten Zeile (n muss eine Zahl sein) nach oben <#top> ↑ Befehlsmodus - Text löschen (ausschneiden) Die gelöschten, bzw. ausgeschnittenen Bereiche werden in den Pufferspeicher gelegt. Diese ausgeschnittenen Textbereiche können danach an anderer Stelle wieder eingefügt werden. x , Entf löscht Text ab Cursor (nach rechts) X löscht Text links vom Cursor dw (delete word forward) löscht nach rechts bis zum nächsten Wortanfang de (delete end of word) löscht nach rechts bis zum nächsten Wortende db (delete word backward) löscht nach links bis zum vorherigen Wortanfang d$ , D bis zum Zeilenende d^ bis zum Zeilenanfang d) bis zum nächsten Satzende d} bis zum nächsten Absatzende dd löscht die aktuelle Zeile ndd löscht von der aktuellen Zeile nach unten bis zur n'ten Zeile (n muss eine Zahl sein) nach oben <#top> ↑ Befehlsmodus - Text einfügen Mit diesen Befehlen wird der zuletzt in den Pufferspeicher gelegte Bereich eingefügt. p (paste) an die Position rechts vom Cursor P (paste) an die Position links vom Cursor nach oben <#top> ↑ Befehlsmodus - Text ändern ~ Gross- / Kleinschreibung eines Zeichens ändern r (replace) ein Zeichen ersetzen R (replace) Text überschreiben (wechselt in den Einfügemodus) J (join) Textumbruch am Zeilenende entfernen >> die aktuelle Zeile nach rechts rücken << die aktuelle Zeile nach links rücken n>> die nächsten n Zeilen nach rechts rücken (n muss eine Zahl sein) n<< die nächsten n Zeilen nach links rücken (n muss eine Zahl sein) nach oben <#top> ↑ Befehlsmodus - Text suchen /Enter sucht vorwärts nach ?Enter sucht rückwärts nach /Enter sucht vorwärts nach dem zuletzt verwendeten Suchmuster ?Enter sucht rückwärts nach dem zuletzt verwendeten Suchmuster n letzte Suche in gleicher Richtung wiederholen N letzte Suche in umgekehrter Richtung wiederholen :s///gEnter wechselt in den Kommandozeilenmodus und sucht innerhalb der gesamten Zeile nach und ersetzt dieses durch :% s///gEnter sucht und ersetzt wie zuvor, aber innerhalb der gesamten Datei (% bedeutet das gleiche wie 1,$) :% s///gcEnter sucht und ersetzt wie zuvor, aber fragt vor dem Ersetzen nach nach oben <#top> ↑ Befehlsmodus - Tipps ggVG alles markieren ea am Ende eines Wortes weiter schreiben xp dieses und das Zeichen rechts vom Cursor vertauschen ddp diese und die folgende Zeile vertauschen nach oben <#top> ↑ Kommandozeilenmodus : wechselt vom Befehlsmodus in den Kommandozeilenmodus Im Kommandozeilenmodus müssen alle Eingaben mit Return / Enter abgeschlossen werden. nach oben <#top> ↑ Kommandozeilenmodus - Befehle :q (quit) schließt Datei ohne zu speichern :q! (quit force) schließt Datei ohne zu speichern (schließen erzwingen) :qa! (quit all force) schließt alle Dateien ohne zu speichern (schließen erzwingen) :w (write) speichert Datei :w (write) (write) speichert Datei unter neuem Dateinamen :wq (write quit) speichert Datei und beendet vim :wqa (write quit all) speichert alle Dateien und beendet vim :x (exit) speichert Datei und beendet vim :e (edit) öffnet Datei :e! (edit) erstellt neue Datei :enew (edit new) erstellt neue Datei ohne zu speichern :e. (Doppelpunkt e Punkt) öffnet den als Plugin integrierten Dateimanager und zeigt eine Dateiliste des aktuellen Verzeichnisses an F1 zeigt die Hilfedatei zum integrierten Dateimanager an :f (file) ändert den Dateinamen der aktuell geladenen Datei, ohne diese zu speichern :r (read) öffnet Datei und fügt diese unterhalb des Cursors ein :r! führt Shellbefehl aus und fügt dessen Ausgabe unterhalb des Cursors ein :sp (split) öffnet Datei in einem horizontal geteilten Fenster :vsp (vertical split) öffnet Datei in einem vertikal geteilten Fenster nach oben <#top> ↑ Kommandozeilenmodus - Hilfe :help ruft die Hilfedatei 'help.txt' auf :help ruft die Hilfedatei zu dem angegebenen Befehl auf :help dann Strg + d zeigt alle verfügbaren Hilfedateien an, in dem der angegebene Befehl vorkommt :q verlässt die Hilfedatei und wechselt zurück in den Befehlsmodus nach oben <#top> ↑ Kommandozeilenmodus - Einstellungen :se (set) zeigt die Benutzereinstellungen :se all (set all) zeigt alle Einstellungen :se schaltet eine Einstellung ein :se no schaltet eine Einstellung aus :se ? zeigt den aktuellen Wert einer Einstellung an :se nu (set number) schaltet die Zeilennummernanzeige ein :se nonu (set nonumber) schaltet die Zeilennummernanzeige aus :se wrap (set wrap) schaltet den Zeilenumbruch ein :se nowrap (set nowrap) schaltet den Zeilenumbruch aus :se scb (set scrollbind) geöffnete Fenster scrollen synchron (muss in jedem Fenster aktiviert werden) :se noscb (set noscrollbind) schaltet scrollbind aus :se hls (set hlsearch) hebt alle Suchtreffer hervor, die mit / oder ? Eingegeben werden :se nohls (set nohlsearch) schaltet die hervorgehobenen Suchtreffer aus :syntax on / off schaltet Syntaxhighlighting ein / aus :color verwendet das angegebene Farbschema - die verfügbaren Farbschemas sind im Vim Unterverzeichnis /usr/share/vimxx/colors abgelegt (default = Standard-Farbschema) :Esc oder :Enter verlässt den Kommandozeilenmodus und wechselt zurück in den Befehlsmodus nach oben <#top> ↑ letzte Überarbeitung am 22.03.2009 von Michael Schrader <../impressum.html> · Aufruf-Statistik <../usage/index.html> · W3*C*XHTML 1.0 [»] W3*C*CSS [»]