Vim Dateien

Kommen wir nun zum Nutzen von Dateien (Files) mit Vim. Selbstverständlich kann man einfach mit dem Start von Vim eine Datei zum Öffnen auswählen: Vim testing.html.

Bei einem leeren Vim hilft das Kommanodo :edit bzw. :e weiter. Bei ordentlicher Vim-Konfiguration (siehe hierzu auch .Vimrc) sollten hier auch unscharfe Suchen mit Auswahlmöglichkeiten erscheinen.

:e git-projekte/**/RE TAB

Hier sollte eine Auswahl von README.md aus Git-Projekten erscheinen und auswahlbar werden.

Tipp

Für noch professionelleres und schnelleres Suchen/Finden: FZF (Fuzzy-Finder) als Tool im OS (z.B. apt install fzf) und dann als Vim-Plugin fzf (by Junegunn Choi)

Wenn sich ein Dateiname/Pfad im Dokument befindet, dann einfach Dokument mit gf öffnen.

Mehrere Dateien

Für die weiteren Darstellungen vermeide ich alles zu Fenstern (Windows) oder Registerkarten (Tabs)! Denn mit den sogenannten Puffern (Buffers) können wir das Managen mehrere Dateien ebenfalls easy handeln.

Wenn man mit :e eine weitere Datei lädt, dann verschwindet die erste Datei. Das Vorhandensein von den Vim-Buffers lassen wir uns mit :buffers oder einfach mit :ls anzeigen/auflisten.

Wir können jetzt gezielt die Buffer (aka: Dateien) auswählen und wechseln:

Puffer / Buffers - Modus: NORMAL

Puffer / Buffers

Taste / Tastenkombination

Aktion

Anmerkungen

:ls

Lister aller Buffers auflisten lassen

oder :buffers

:b filename

Buffer mit Name filename

Auch Substrings von filename möglich!

:b3

Buffer mit Index 3 aufrufen

hier: kein Leerzeichen vor Zahl

:bn

nächsten Buffer

:bp

vorherigen Buffer

:bd

Buffer aktuelles Fenster löschen

Datei schließen; auch :bd 3

:sb 2

Bufferinhalt #2 in neuem Fenster

Split hier horizontal

:sball

Alle Bufferinhalte splitten

Split hier horizontal

:vertical sb 2

Bufferinhalt #2 in neuem Nachbarfenster

Split hier vertikal

Strg + w

Fensterwechsel mit weiterem w

oder: Wechsel mit Richtungstasten hjkl

Durch die split-Kommandos kamen jetzt indirekt auch Fenster ins Spiel. Allerdings werden diese nach :q immer noch in der Buffer-Liste geführt!

Trick: gleichzeitige Ändern von allen Dateien in Bufferlist (Vim Fandom Wiki)

:set autowriteall - Buffer automatisch speichern, wenn nötig!

:bufdo %s/muster/ersatz/ge - Anm.: Globales ersetzen; keine Fehler anzeigen falls Muster nicht gefunden.

Explorer für Dateien/Ordner

Für das Datei- und Ordnerhandling in Vim gibt es diverse Plugins (siehe NerdTree), aber in den aktuellen Vim-Versionen nutze ich das boardeigene Netrw: Anleitung auf Shapeshed.com.

Dateien und Ordner mit netrw

Dateien und Ordner mit netrw

Auch hier wieder mit ausführlicher Hilfe (F1 ;-) mit der man die Konfiguration (siehe unten rechts .Vimrc) und Nutzung schnell nachschlagen kann.

Tipps:

  • gh blendet versteckte (hidden) Objekte ein/aus

  • v öffnet in vertical split

  • t öffnet in neuem Tab (nutze ich aber ja nicht ;-)

Leider ist Netrw nicht in jeder Vim-Installation verfügbar!

Tipp

Für Netrw benötigt man bei manchen Distros (siehe openSUSE 15.1 oder auch 15.2) aktuellere Vim Versionen als in den Standard-Quellen: Leap 15.1 mit Vim 8.0 - besser updaten über Editor-Repo auf 8.2!

Anleitung Leap 15.1:

zypper addrepo https://download.opensuse.org/repositories/editors/openSUSE_Leap_15.1/editors.repo
zypper refresh
zypper install vim

Anleitung Leap 15.2:

zypper addrepo https://download.opensuse.org/repositories/editors/openSUSE_Leap_15.2/editors.repo
zypper refresh
zypper install vim

Oder natürlich Vim aus den Quellen installieren: Vim aus Git-Sources erstellen