User Tools

Site Tools


viki:04_erste

Vim ist keine Insel

4. Erste Schritte

Genug mit den Vorerklärungen, jetzt wollen wir Vim benutzen. Wir werden in diesem Kapitel diverse Funktionen nur kurz anschneiden, um die Begrifflichkeiten für spätere, genauere Erklärungen kennenzulernen.

Erster Aufruf und Beenden

Vim kann man von der Kommandozeile mit vim <Dateiname> starten. Probieren wir das einmal. Eine Textdatei hat jeder irgendwo herumfliegen. Ein Stück Quellcode, eine Readme-Datei, irgendetwas. Machen wir eine Kopie davon, und nennen sie test_1.txt.

Diese Kopie öffnen wir jetzt mit Vim:

vim test_1.txt

Das Terminal zeigt jetzt den Anfang unserer Datei. Sollte die Datei komplett in die Anzeige passen, sehen wir am linken Bildschirmrand unter der letzten angezeigten Datenzeile Tilden (~), die verdeutlichen sollen, dass diese Zeilen nicht zur Datei gehören. (Der feine Unterschied zwischen leeren Zeilen und nicht vorhandenen Zeilen.)

Am unteren Bildrand erhalten wir ein paar Informationen zur Datei – Name, Länge in Zeilen, Größe in Zeichen, aktuelle Position in der Datei. Wir befinden uns im Befehlsmodus.

Jetzt geben wir einen Doppelpunkt ein:

:

Wir sehen den Doppelpunkt in der untersten Zeile erscheinen, zusammen mit einem blinkenden Cursor: Wir sind jetzt im Kommandozeilenmodus. Als Befehl geben wir quit ein:

:quit

Vim beendet sich, wir sehen wieder die Kommandozeile.

Sollte die Datei irgendwie verändert worden sein, wird sich Vim nicht beenden, sondern eine Fehlermeldung in der letzten Zeile anzeigen. In diesem Fall müssen wir Vim (mithilfe eines Ausrufezeichens) versichern, dass wir es wirklich ernst meinen mit dem Verwerfen der Änderungen.

Wir müssen nicht jedes Mal :quit ausschreiben; die Kurzform :q reicht aus.

:quit!

Puffer

Jetzt habe ich schon ein paar Mal davon gesprochen, dass wir “die Datei” sehen würden. Das stimmt natürlich nicht ganz: Vim lädt eine Kopie der Datei in einen Puffer im Arbeitsspeicher, und wir sehen nur den Inhalt dieses Puffers, nicht die Datei selbst.

Das ist auch der Begriff, den Vim selbst verwendet: “Puffer” (englisch buffer). Vim kann mehr als einen Puffer gleichzeitig im Speicher halten. Das demonstrieren wir am Besten, indem wir eine zweite Textdatei kopieren und test_2.txt nennen. Dann öffnen wir beide Dateien, jede in ihrem eigenen Puffer:

vim test_1.txt test_2.txt

Wir sehen den Puffer von test_1.txt. Wollen wir zum nächsten Puffer, geben wir :bn (kurz für :bNext, “buffer next”) ein. Einen Puffer zurück gelangen wir mit :bp (kurz für :bprevious, “buffer previous”), alle Puffer schließen können wir mit :qa (“quit all”). Vergessen wir, dass wir mehr als einen Puffer im Speicher haben, gibt uns Vim beim ersten Versuch eine Warnung.

Eine Liste der geöffneten Puffer kann man über mehrere Befehle erhalten:

  • :files
  • :buffers
  • :ls

Es gibt eine Vielzahl von Befehlen zum Thema Puffer, aber dazu kommen wir später. Im Moment reicht es, dass wir eine Vorstellung davon haben, was ein Puffer eigentlich ist.

Fenster

Die Anzeige des aktuellen Puffers, zusammen mit den Statusinformationen am unteren Bildrand, nennt Vim ein “Fenster” (engl. window). Das ist für Benutzer, die an grafische Oberflächen gewohnt sind, etwas missverständlich. Deshalb sei an dieser Stelle gesagt, dass dieses Tutorial immer nur mit einer Instanz von Vim arbeiten wird: Wenn ich “Fenster” schreibe, ist damit immer eine solche Sicht auf einen Vim-Puffer gemeint, nie ein Desktop- oder Terminal-Fenster.

So, wie Vim mehr als einen Puffer geöffnet haben kann, ist auch mehr als ein Fenster gleichzeitig möglich. Am einfachsten erreicht man das direkt von der Kommandozeile:

vim -o test_1.txt test_2.txt

Wir erhalten, wie im letzten Abschnitt auch schon, zwei gleichzeitig geöffnete Puffer, nur diesmal in zwei getrennten, übereinander angeordneten Fenstern. (Ein -O statt dem -o auf der Kommandozeile führt zu nebeneinander angeordneten Fenstern.)

Ein zweimaliger Druck auf <Strg>-w läßt den Fokus zwischen den Fenstern wandern. Ein :q schließt das aktuelle Fenster, :qa schließt alle Fenster.

Wieder gibt es viele Befehle, um mit Fenstern zu arbeiten; für den Moment reicht das Wissen, dass es sie gibt.

Reiter

Wir wissen jetzt, dass es Puffer gibt, und dass ein Fenster einen Puffer darstellt.

Darüber hinaus bietet Vim auch noch “Reiter” (engl. tab pages). Jeder Reiter steht für die Ansammlung an Fenstern, die man gerade sieht.

Man stelle sich vor, man hat die Quellcodes des einen Projekts in mehreren Fenstern genau so angeordnet, wie man es braucht. Dann kommt der Vorgesetzte herein und möchte, dass man eine Datei in einem anderen Projekt ändert. Statt die aufgebaute Fensterkonfiguration zu stören, öffnet man einen neuen Reiter:

:tabnew

Man erhält einen neuen Reiter, der einen unbenannten Puffer in einem neuen Fenster anzeigt. Hier kann man die Dateien eines anderen Projektes bearbeiten, vielleicht ein eigenes Fensterlayout dafür anlegen. Zwischen Reiten wechselt man so ähnlich wie zwischen Puffern in einem Fenster, mit :tabn (kurz für :tabNext) bzw. :tabp (kurz für :tabprevous).

Will man den aktuellen Reiter schließen, macht man das mit :tabc (kurz für :tabclose).

Man kann mehrere Dateien in jeweils einem eigenen Reiter öffnen:

vim -p test_1.txt test_2.txt

Aber Achtung: Ein Reiter pro Datei ist bei den meisten grafischen Editoren die übliche Methode, mit mehreren Dateien zu arbeiten. Wer versucht diese Arbeitsweise direkt auf Vim zu übertragen, macht sich die Dinge unnötig schwer. Üblicherweise ist man mit Puffern und Fenstern besser bedient, und sollte Reiter hauptsächlich benutzen, wenn es tatsächlich um unterschiedliche Projekte geht. Wir kommen auch darauf später noch zurück.


Nächstes Kapitel -- 5. Bewegen im Text

viki/04_erste.txt · Last modified: 2020/12/28 18:05 by solar