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
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.
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