====== Vim ist keine Insel ====== [[02_geschichte | Vorheriges Kapitel -- 2. Geschichte]] ===== 3. Modales Editieren ===== Die meisten modernen Editoren haben nur //einen// Betriebsmodus. Tastenanschläge werden als Texteingabe interpretiert, während Befehle (wie zum Laden oder Speichern einer Datei, dem Suchen eines Textes o.ä.) durch ////, //// oder //// qualifiziert, oder per Maus über eine grafische Oberfläche eingegeben. Vim hingegen führt seine [[02_geschichte | Geschichte]] bis zu einer Zeit zurück, als man noch mit Lochstreifen und Fernschreiber-Terminals arbeitete. Der Editor startet in einem //Befehlsmodus//, in dem die Buchstaben- und Zahlentasten nicht zur Text-, sondern zur Befehlseingabe verwendet werden. Von hier aus kann man in verscheidene andere Modi wechseln, den //Einfügemodus//, den //Kommandozeilenmodus// und noch ein paar mehr. An dieser Stelle gibt es nur eine knappe, bewusst vereinfachende Übersicht über die wichtigsten Modi. Wir werden jedem einzelnen (und einigen weiteren) noch mehrfach begegnen, und genauer beschreiben. ==== Normal- / Befehlsmodus ==== Direkt nach dem Start befindet sich Vim im //Befehlsmodus//. Wie schon erwähnt, werden Tastenanschläge in diesem Modus als Befehle interpretiert, die üblicherweise aus einer Kombination von //Kommando// und //Bewegung// zusammengesetzt sind. ==== Einfügemodus ==== Im //Einfügemodus// fließen Eingaben in den aktuellen Text ein, wie bei einem "normalen" Editor oder Textverarbeitung. Wie aus den übrigen Modi auch gelangt man von hier zurück in den Befehlsmodus über die eine Sondertaste im Repertoire von Vim -- //// oder //-[//. > Auf der [[https://de.wikipedia.org/wiki/ADM-3A#/media/Datei:KB_Terminal_ADM3A.svg | Tastatur der ADM-3A]], auf der Bill Joy ''ex'' / ''vi'' entwickelte, lag die ////-Taste dort wo auf heutigen Tastaturen die ////-Taste liegt, und war somit für Zehn-Finger-Schreiber ebenso bequem erreichbar wie es //-[// noch heute ist -- zumindest auf [[https://de.wikipedia.org/wiki/Tastaturbelegung#/media/Datei:KB_United_States-NoAltGr.svg | US-Keyboards]]. Einer der Gründe, warum ich persönlich das [[https://de.wikipedia.org/wiki/Tastaturbelegung#US-International | US International Alternate]][[software:start#notes_and_resources|[1]]] Layout benutze und weiterempfehle. Ein weiteres gutes Layouts gerade für Programmierer ist EurKEY[[https://de.wikipedia.org/wiki/EurKEY|[2]]]. ==== Kommandozeilenmodus ==== Gibt man im Befehlsmodus einen Doppelpunkt ('':'') ein, gelangt man in den //Kommandozeilenmodus//. Dieser erlaubt die Eingabe komplexer Kommandos, wie Suchen / Ersetzen, dem Aufruf externer Befehle (z.B. ''sort'') o.ä.; man kann die Eingabe eines Befehls mit //// oder //-[// abbrechen, was (wie die Ausführung des Befehls mit der Eingabetaste) zurück in den Befehlsmodus führt. ==== Ex-Modus ==== Mit ''Q'' wechselt man in den //Ex-Modus//: * Die Eingabe eines Doppelpunkts vor einem Befehl ist nicht notwendig. (In **ex** ist man quasi immer im Kommandozeilenmodus.) * Nach der Eingabe eines Befehls bleibt man im Ex-Modus. (In **ex** gibt es keinen Befehlsmodus.) * Die Anzeige des aktuellen Text wird nicht aktualisiert. (In **ex** gibt es keinen "visual mode".) Aus dem Ex-Modus zurück in den Normal- / Befehlsmodus wechselt man auf dieselbe Weise wie seit 1978 -- mit dem Befehl '':visual'' / '':vi''. ==== Visueller Modus ==== Im //Visuellen Modus// können Textbereiche zeichenweise, zeilenweise, oder blockweise selektiert werden. Anschließend kann man den ausgewählten Text mit den Funktionen des Befehls- oder Kommandozeilenmodus bearbeiten. In den folgenden Kapiteln gehen wir genauer auf die einzelnen Modi und ihre Möglichkeiten ein. ---- [[04_erste | Nächstes Kapitel -- 4. Erste Schritte]]