O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Vim in der Praxis - blitzschnell Text editieren

Book Description

Vim ist ein schlanker Texteditor, der Ihnen hilft, schneller und deutlich effizienter zu programmieren. Vim in der Praxis bietet Ihnen anhand von über 100 Tipps einen raschen Einstieg in die Kernfunktionen des Editors und hilft Ihnen, problemlos die verzwicktesten Bearbeitungsaufgaben und Schreibarbeiten zu bewältigen. Vim-Experte Drew Neil nutzt realistische Praxisbeispiele, um Ihnen Schritt für Schritt zu zeigen, wie Sie mit Vim schneller ans Ziel kommen. Er zeigt Ihnen zahlreiche neue Möglichkeiten, effizienter mit Vim zu arbeiten, ganz gleich ob Sie ein Vim-Neuling oder bereits ein erfahrener Vim-Nutzer sind.

Table of Contents

  1. 1. Danksagungen
  2. 2. Vorwort
  3. 3. Lies mich
    1. Wie dieses Buch aufgebaut ist
    2. Eine Bemerkung zu den Beispielen
    3. Lernen Sie das Zehnfingersystem, bevor Sie Vim lernen
  4. 4. Das vergessene Handbuch
    1. Machen Sie sich mit Vims eingebauter Dokumentation vertraut
    2. Notation für die Vim-Emulation auf der gedruckten Seite
      1. Melodien spielen
      2. Tastenkombinationen eingeben
      3. Platzhalter
      4. Die Darstellung spezieller Tasten
      5. Während der Befehlseingabe den Modus wechseln
      6. Mit der Kommandozeile interagieren
      7. Die Cursorposition in einem Puffer anzeigen
      8. Suchtreffer hervorheben
      9. Text im visuellen Modus auswählen
    3. Die Beispiele herunterladen
    4. Vims Voreinstellungen nutzen
    5. Die Rolle von Vim-Script
    6. Die Vim-Versionen
      1. Vim im Terminal oder Vim mit GUI? Ihre Entscheidung!
  5. 5. Der Vim-Weg
    1. 5.1. Der Punktbefehl
      1. Der Punktbefehl ist ein Mikro-Makro
    2. 5.2. Vermeiden Sie Wiederholungen
      1. Überflüssige Navigationsoperationen minimieren
    3. 5.3. Ein Schritt zurück, drei nach vorne
      1. Die Änderung wiederholbar machen
      2. Die Bewegung wiederholbar machen
      3. Jetzt alles zusammen
    4. 5.4. Handeln, Wiederholen, Umkehren
    5. 5.5. Manuelles Suchen und Ersetzen
      1. Unnötige Arbeit vermeiden: Suchen ohne Tippen
      2. Die Veränderung wiederholbar machen
      3. Jetzt alles auf einmal
    6. 5.6. Die Punktformel
      1. Ein erneuter Blick auf die drei Punktbefehl-Textbearbeitungsaufgaben
      2. Das Ideal: Eine Tastenaktion für die Bewegung, eine Tastenaktion für die Ausführung
  6. I. Modi
    1. 6. Normaler Modus
      1. 6.1. Den Pinsel von der Leinwand heben
      2. 6.2. Rückgängig‐Operationen portionieren
      3. 6.3. Wiederholbare Änderungen konstruieren
        1. Rückwärts löschen
        2. Vorwärts löschen
        3. Ein vollständiges Wort löschen
        4. Unentschieden entscheiden: Was lässt sich besser wiederholen?
        5. Erörterung
      4. 6.4. Zähler für einfache Berechnungen nutzen
      5. 6.5. Vermeiden Sie das Zählen, wenn Sie wiederholen können
        1. Nutzen Sie einen Zähler, wenn es sinnvoll ist
      6. 6.6. Kombinieren heißt Siegen
        1. Operator + Bewegung = Aktion
        2. Die Kombinationskräfte von Vim erweitern
          1. Benutzerdefinierte Operatoren nutzen vorhandene Bewegungen
          2. Benutzerdefinierte Bewegungen nutzen vorhandene Operatoren
    2. 7. Einfügemodus
      1. 7.1. Korrekturen unmittelbar aus dem Einfügemodus durchführen
      2. 7.2. In den normalen Modus zurückwechseln
        1. Der Einfüge‐Normalmodus
      3. 7.3. Einfügen aus einem Register ohne den Einfügemodus zu verlassen
        1. Nutzen Sie <C-r>{Register} für zeichenbasierte Register für zeichenbasierte Register
      4. 7.4. Kleine Berechnungen vor Ort durchführen
      5. 7.5. Ungewöhnliche Zeichen über ihren Zeichencode eingeben
      6. 7.6. Ungewöhnliche Zeichen über Digraphen eingeben
      7. 7.7. Text im Ersetzungsmodus überschreiben
        1. Tabulatorzeichen im virtuellen Ersetzungsmodus überschreiben
    3. 8. Visueller Modus
      1. 8.1. Den visuellen Modus verstehen
      2. 8.2. Eine visuelle Auswahl definieren
        1. Visuelle Modi aktivieren
        2. Zwischen visuellen Modi wechseln
        3. Das offene Ende einer Auswahl umschalten
      3. 8.3. Zeilenbasierte visuelle Befehle wiederholen
        1. Vorbereitung
        2. Einmal einrücken, dann wiederholen
      4. 8.4. Ziehen Sie Operatoren wenn möglich visuellen Befehlen vor
        1. Einen visuellen Operator nutzen
        2. Einen Operator des normalen Modus verwenden
        3. Erörterung
      5. 8.5. Tabellarische Daten mit dem blockbasierten Modus bearbeiten
      6. 8.6. Textspalten ändern
      7. 8.7. Etwas ans Ende der Zeilen eines unregelmäßigen visuellen Blocks anhängen
    4. 9. Kommandozeilenmodus
      1. 9.1. Vims Kommandozeile
        1. Besondere Tasten in Vims Kommandozeilenmodus
        2. Ex-Befehle haben eine große Reichweite
      2. 9.2. Einen Befehl auf einer Zeile oder mehreren aufeinanderfolgenden Zeilen ausführen
        1. Zeilennummern als Adressen nutzen
        2. Einen Zeilenbereich über eine Adresse angeben
        3. Einen Zeilenbereich über eine visuelle Auswahl definieren
        4. Einen Zeilenbereich über Muster angeben
        5. Eine Adresse über einen Abstand angeben
        6. Erörterung
      3. 9.3. Zeilen mit den Befehlen :t und :m duplizieren oder verschieben
        1. Zeilen mit dem Befehl :t kopieren
        2. Zeilen mit dem Befehl :m verschieben
      4. 9.4. Befehle des normalen Modus über einen Bereich ausführen
      5. 9.5. Den letzten Ex-Befehl wiederholen
      6. 9.6. Ex-Befehle mit Tab automatisch vervollständigen
        1. Unter mehreren Treffern auswählen
      7. 9.7. Das aktuelle Wort in die Eingabeaufforderung einfügen
      8. 9.8. Befehle aus dem Befehlsverlauf wieder aufrufen
        1. Das Kommandozeilenfenster
      9. 9.9. Befehle in der Shell ausführen
        1. Programme in der Shell ausführen
        2. Den Inhalt eines Puffers als Standardeingabe oder -ausgabe nutzen
        3. Den Inhalt eines Puffers durch einen externen Befehl filtern
        4. Erörterung
  7. II. Dateien
    1. 10. Mehrere Dateien verwalten
      1. 10.1. Offene Dateien über die Pufferliste einsehen
        1. Der Unterschied zwischen Dateien und Puffern
        2. Die Pufferliste
        3. Die Pufferliste nutzen
        4. Puffer löschen
      2. 10.2. Puffer über die Argumentliste zu Gruppen zusammenstellen
        1. Die Argumentliste füllen
          1. Dateien über den Namen angeben
          2. Dateien über Globs angeben
          3. Dateien über eine Backtick-Expansion angeben
        2. Die Argumentliste
      3. 10.3. Verborgene Dateien verwalten
        1. Verborgene Puffer beim Beenden
        2. Die Einstellung hidden vor der Ausführung von :argdo oder :bufdo aktivieren
      4. 10.4. Ihren Arbeitsbereich in Fenster teilen
        1. Geteilte Fenster erzeugen
        2. Den Fokus zwischen Fenstern verschieben
        3. Fenster schließen
        4. Anordnung und Größe von Fenstern ändern
      5. 10.5. Fensterlayouts mit Tab-Seiten organisieren
        1. Wie man Tabs nutzt
        2. Tabs öffnen und schließen
        3. Zwischen Tabs wechseln
        4. Tabs umordnen
    2. 11. Dateien öffnen und auf der Festplatte speichern
      1. 11.1. Eine Datei mit :edit über einen Dateipfad öffnen
        1. Eine Datei relativ zum aktuellen Arbeitsverzeichnis öffnen
        2. Eine Datei relativ zum Verzeichnis der aktiven Datei öffnen
      2. 11.2. Eine Datei mit :find über den Dateinamen öffnen
        1. Vorbereitung
        2. path konfigurieren
        3. Mit :find Dateien anhand des Namens suchen
      3. 11.3. Das Dateisystem mit netrw erforschen
        1. Vorbereitung
        2. netrw – Vims nativer Dateiexplorer
        3. Den Dateiexplorer öffnen
        4. Mit geteilten Fenstern arbeiten
        5. Mehr Dinge mit netrw anstellen
      4. 11.4. Dateien in nicht vorhandenen Verzeichnissen speichern
      5. 11.5. Eine Datei als Superuser speichern
  8. III. Rascher vorankommen
    1. 12. Mit Bewegungen in Dateien navigieren
      1. 12.1. Halten Sie die Finger auf der Grundreihe
        1. Lassen Sie die rechte Hand dort, wo sie hingehört
      2. 12.2. Echte Zeilen und Anzeigezeilen unterscheiden
      3. 12.3. Wortweise bewegen
        1. Wörter und WORDS
      4. 12.4. Anhand eines Zeichens finden
        1. Die Suche nach Zeichen kann das Ziel einschließen oder ausschließen
        2. Denken Sie wie ein Scrabble-Spieler
      5. 12.5. Suchen zum Navigieren
        1. Mit einer Suchbewegung arbeiten
      6. 12.6. Mit Textobjekten eine exakte Auswahl treffen
        1. Mit Textobjekten Operationen durchführen
        2. Erörterung
      7. 12.7. Außen löschen, innen ändern
      8. 12.8. Eine Position markieren und wieder zu ihr zurückkehren
        1. Automatische Marken
      9. 12.9. Zwischen zueinandergehörigen Klammern hin- und herspringen
        1. Zwischen korrespondierenden Schlüsselwörtern hin- und herspringen
    2. 13. Mit Sprüngen von Datei zu Datei
      1. 13.1. Die Sprungliste durchqueren
      2. 13.2. Die Veränderungsliste durchlaufen
        1. Marken für die letzte Veränderung
      3. 13.3. Zum Dateinamen unter dem Cursor springen
        1. Eine Dateierweiterung angeben
        2. Die Verzeichnisse angeben, in denen gesucht werden soll
        3. Erörterung
      4. 13.4. Mit globalen Marken zwischen Dateien springen
        1. Eine globale Marke setzen, bevor Sie in Ihren Code abtauchen
  9. IV. Register
    1. 14. Kopieren und Einfügen
      1. 14.1. Löschen, Kopieren und Einfügen mit Vims unbenanntem Register
        1. Zeichen vertauschen
        2. Zeilen vertauschen
        3. Zeilen verdoppeln
        4. Mist, ich habe meine Kopie verhunzt
      2. 14.2. Vims Register verstehen
        1. Ein Register adressieren
        2. Das unbenannte Register ("")
        3. Das Kopierregister ("0)
        4. Die benannten Register ("a--"z)
        5. Das Schwarzes-Loch-Register ("_)
        6. Die Systemzwischenablage ("+) und das Auswahlregister ("*)
        7. Das Ausdrucksregister ("=)
        8. Weitere Register
      3. 14.3. Eine visuelle Auswahl durch ein Register ersetzen
        1. Wörter tauschen
      4. 14.4. Aus einem Register einfügen
        1. Zeichenbasierte Bereiche einfügen
        2. Zeilenbasierte Textbereiche einfügen
        3. Erörterung
      5. 14.5. Mit der Systemzwischenablage interagieren
        1. Vorbereitung
        2. Die Kopieroperation des Systems ausfindig machen
        3. Den Systemkopierbefehl im Einfügemodus nutzen
        4. Das Umschalten von paste durch Einfügen aus dem Plusregister vermeiden
    2. 15. Makros
      1. 15.1. Ein Makro aufzeichnen und ausführen
        1. Eine Folge von Befehlen als Makro aufzeichnen
        2. Eine Befehlsfolge wieder abspielen, indem wir ein Makro ausführen
          1. Makros in Reihe ausführen
          2. Das Makro parallel ausführen
      2. 15.2. Normalisieren, Zuschlagen, Abbrechen
        1. Die Cursorposition normalisieren
        2. Ihr Ziel mit einer wiederholbaren Bewegung treffen
        3. Wenn eine Bewegung zu kurz greift
      3. 15.3. Makros mit einem Zähler abspielen
      4. 15.4. Eine Änderung auf zusammenhängenden Zeilen wiederholen
        1. Eine Arbeitseinheit aufzeichnen
        2. Ein Makro in Reihe ausführen
        3. Ein Makro parallel ausführen
        4. Die Entscheidung: Reihe oder parallel
      5. 15.5. Befehle an ein Makro anhängen
        1. Erörterung
      6. 15.6. Mit einer Sammlung von Dateien arbeiten
        1. Vorbereitung
        2. Eine Liste der Zieldateien aufbauen
        3. Eine Arbeitseinheit aufzeichnen
        4. Das Makro parallel ausführen
        5. Das Makro in Reihe ausführen
        6. Die Änderungen an allen Dateien speichern
        7. Erörterung
      7. 15.7. Einen Iterator auswerten, um die Elemente in einer Liste zu nummerieren
        1. Rudimentäres Vim-Script
        2. Das Makro aufzeichnen
        3. Das Makro ausführen
      8. 15.8. Den Inhalt eines Makros bearbeiten
        1. Das Problem: Ungewöhnliche Formatierung
        2. Das Makro in ein Dokument einfügen
        3. Den Text bearbeiten
        4. Das Makro aus dem Dokument wieder in ein Register einfügen
        5. Erörterung
  10. V. Muster
    1. 16. Vergleichsmuster und Literale
      1. 16.1. Die Berücksichtigung von Groß-/Kleinschreibung in Suchmustern anpassen
        1. Die Berücksichtigung der Groß-/Kleinschreibung global setzen
        2. Die Berücksichtigung der Groß-/Kleinschreibung für einzelne Suchoperationen setzen
        3. Standardmäßig eine intelligentere Berücksichtigung der Groß-/Kleinschreibung aktivieren
      2. 16.2. Nutzen Sie den \v-Musterschalter für Regex-Suchoperationen-Musterschalter für Regex-Suchoperationen
        1. Hex-Farben mit der magischen Suche finden
        2. Hex-Farben mit der »sehr magischen Suche« finden
        3. Das Muster mit der Hex-Zeichenklasse noch weiter verbessern
        4. Erörterung
      3. 16.3. Mit dem Literalschalter \V eine wörtliche Suche durchführen eine wörtliche Suche durchführen
      4. 16.4. Mit Klammern Subtreffer einfangen
      5. 16.5. Die Grenzen eines Wortes abstecken
      6. 16.6. Die Grenzen eines Treffers abstecken
      7. 16.7. Problematische Zeichen maskieren
        1. /-Zeichen bei der Vorwärtssuche maskieren-Zeichen bei der Vorwärtssuche maskieren
        2. Bei der Rückwärtssuche ? maskieren
        3. \ sollten Sie immer maskieren
        4. Zeichen mit Code maskieren
    2. 17. Suche
      1. 17.1. Der Suchbefehl
        1. Eine Suche durchführen
        2. Die Suchrichtung angeben
        3. Die letzte Suche wiederholen
        4. Vergangene Suchoperationen erneut abrufen
      2. 17.2. Suchtreffer hervorheben
        1. Die Suchhervorhebung unterdrücken
      3. 17.3. Vorschau des ersten Treffers vor der Ausführung
        1. Prüfen, ob es einen Treffer gibt
        2. Das Suchfeld auf Grundlage von Vorschautreffern automatisch vervollständigen
      4. 17.4. Die Treffer für das aktuelle Muster zählen
      5. 17.5. Den Cursor zum Ende eines Suchtreffers verschieben
      6. 17.6. Auf einem vollständigen Suchmuster operieren
      7. 17.7. Komplexe Muster erstellen, indem man den Suchverlauf durchläuft
        1. 1: Ein ungefährer Treffer
        2. 2: Verbesserung
        3. 3: Nächste Iteration
        4. 4: Eine letzte Korrektur
        5. Erörterung
      8. 17.8. Nach der aktuellen visuellen Auswahl suchen
        1. Im visuellen Modus nach dem aktuellen Wort suchen
        2. Nach der aktuellen Auswahl suchen (Stand der Technik)
        3. Nach der aktuellen Auswahl suchen (Kurzfassung)
    3. 18. Ersetzung
      1. 18.1. Der »substitute«-Befehl
        1. Den »substitute«-Befehl mit Flags anpassen
        2. Sonderzeichen für den Ersetzungsstring
      2. 18.2. Alle Treffer in einer Datei finden und ersetzen
      3. 18.3. Alle Ersetzungen in Augenschein nehmen
        1. Erörterung
      4. 18.4. Das letzte Suchmuster wiederverwenden
        1. Es ist nicht immer angemessen
        2. Implikationen für den Befehlsverlauf
      5. 18.5. Durch den Inhalt eines Registers ersetzen
        1. Über den Wert übergeben
        2. Per Referenz übergeben
        3. Vergleich
      6. 18.6. Den letzten Ersetzungsbefehl wiederholen
        1. Eine zeilenbasierte Substitution über eine ganze Datei wiederholen
        2. Den Bereich eines Ersetzungsbefehls anpassen
          1. Erörterung
      7. 18.7. CSV-Felder mit Subtreffern umordnen
      8. 18.8. Auf der Ersetzung Berechnungen durchführen
        1. Das Suchmuster
        2. Der Ersetzungsbefehl
      9. 18.9. Zwei oder mehr Wörter austauschen
        1. Das andere Wort zurückliefern
        2. Beide Wörter finden
        3. Nun alles zusammen
        4. Erörterung
      10. 18.10. Suchen und Ersetzen über mehrere Dateien
        1. Der Ersetzungsbefehl
        2. Einen Ersetzungsbefehl auf allen Dateien des aktuellen Projekts ausführen
        3. Eine Liste der Dateien aufbauen, die unser Zielmuster enthalten
    4. 19. Der »global«-Befehl
      1. 19.1. Der Befehl »global«
      2. 19.2. Zeilen löschen, die ein Muster enthalten
        1. Passende Zeilen mit :g/re/d löschen
        2. Mit ‘:v/re/d’ nur passende Zeilen finden
      3. 19.3. Alle TODO-Elemente in einem Register sammeln
        1. Erörterung
      4. 19.4. Die Properties aller Regeln in einer CSS-Datei sortieren
        1. Properties für einen Regelblock sortieren
        2. Properties für alle Regelblöcke sortieren
        3. Erörterung
  11. VI. Werkzeuge
    1. 20. Quellcode mit ctags indizieren und navigieren
      1. 20.1. ctags
        1. exuberant-ctags installieren
        2. Codedateien mit ctags indizieren
        3. Die Anatomie einer tags-Datei
          1. Schlüsselwörter werden über ein Muster, nicht über eine Zeilennummer adressiert
          2. Schlüsselwörter werden mit Metadaten versehen
      2. 20.2. Vim für die Zusammenarbeit mit ctags konfigurieren
        1. Vim sagen, wo die Tag-Datei zu finden ist
        2. Die Tag-Datei erstellen
          1. Der einfache Fall: ctags manuell ausführen
          2. ctags jedes Mal automatisch ausführen, wenn eine Datei gespeichert wird
          3. ctags automatisch mit Hooks des Versionskontrollsystems ausführen
          4. Erörterung
      3. 20.3. Mit Vims Navigationsbefehlen zu Schlüsselwortdefinitionen navigieren
        1. Zu einer Schlüsselwortdefinition springen
        2. Das Sprungziel angeben, wenn es mehrere Treffer für ein Schlüsselwort gibt
        3. Ex-Befehle verwenden
    2. 21. Code kompilieren und Fehler über die Quickfix-Liste einsehen
      1. 21.1. Code kompilieren, ohne Vim zu verlassen
        1. Vorbereitung
        2. Das Projekt in der Shell kompilieren
        3. Das Projekt aus Vim heraus kompilieren
      2. 21.2. Die Quickfix-Liste durchlaufen
        1. Elementare Quickfix-Bewegungen
        2. Schneller Vor- und Rücklauf
        3. Das Quickfix-Fenster
      3. 21.3. Ergebnisse aus einer alten Quickfix-Liste abrufen
      4. 21.4. Den externen Compiler anpassen
        1. :make für den Aufruf von Nodelint konfigurieren
        2. Die Quickfix-Liste auf Basis der Ausgabe von nodelint füllen
        3. makeprg und errorformat mit einem einzigen Befehl einrichten
    3. 22. Projektübergreifene Suche mit grep, vimgrep und anderen
      1. 22.1. grep aufrufen, ohne Vim zu verlassen
        1. grep von der Kommandozeile nutzen
        2. grep in Vim aufrufen
      2. 22.2. Das grep-Programm anpassen
        1. Vims grep-Standardeinstellungen
        2. :grep ack aufrufen lassen
        3. ack zu Zeile und Spalte springen lassen
      3. 22.3. Grep mit Vims interner Such-Engine
        1. In einer Datei und dann im ganzen Projekt suchen
        2. Suchverlauf und :vimgrep
    4. 23. Die automatische Vervollständigung
      1. 23.1. Vims automatische Schlüsselwortvervollständigung
        1. Die Autovervollständigung anstoßen
      2. 23.2. Mit dem Autovervollständigungsmenü arbeiten
        1. Die Wortliste durchblättern, ohne das Dokument zu verändern
        2. Das Dokument beim Durchlaufen der Wortliste aktualisieren
        3. Alle Vorschläge verwerfen
        4. Die Wortliste bei der Eingabe verfeinern
      3. 23.3. Die Quelle der Schlüsselwörter
        1. Die Pufferliste
        2. Eingeschlossene Dateien
        3. Tag-Dateien
        4. Alles zusammen
      4. 23.4. Wörter aus dem Wörterbuch vervollständigen
      5. 23.5. Ganze Zeilen vervollständigen
      6. 23.6. Autovervollständigung von Dateinamen
      7. 23.7. Autovervollständigung mit Kontextbewusstsein
    5. 24. Tippfehler mit Vims Rechtschreibprüfung aufspüren und beheben
      1. 24.1. Die Rechtschreibung Ihrer Texte prüfen
        1. Vims Rechtschreibprüfung bedienen
      2. 24.2. Alternative Rechtschreibprüfungswörterbücher verwenden
        1. Eine regionale Variante einer Sprache angeben
        2. Rechtschreibprüfungsdateien für andere Sprachen
      3. 24.3. Der Rechtschreibprüfungsdatei Wörter hinzufügen
        1. Eine Rechtschreibprüfungsdatei für Fachterminologie erstellen
      4. 24.4. Rechtschreibfehler aus dem Einfügemodus ändern
        1. Vorbereitung
        2. Das übliche Verfahren: In den normalen Modus wechseln
        3. Der schnelle Weg: Die Rechtschreib‐Autovervollständigung
  12. 25. Und was jetzt?
    1. Übung, Übung, Übung!
    2. Machen Sie sich Vim zu eigen
    3. Machen Sie sich mit der Säge vertraut, und schärfen Sie sie dann
  13. A. Vim an die eigenen Bedürfnisse anpassen
    1. Vims Einstellungen en passant ändern
    2. Ihre Konfiguration in einer vimrc-Datei speichern
    3. Anpassungen auf bestimmte Dateitypen anwenden
  14. Stichwortverzeichnis
  15. Copyright