Vim bringt mit netrw einen eingebauten Datei-Manager mit, der auf jeder Vim-Installation ab Werk verfügbar ist. Er ist mächtig, deckt vom einfachen Verzeichnis-Browsing bis zur Bookmark-Verwaltung und Multi-File-Operationen alles ab — und er polarisiert: Manche Vim-Profis nutzen ihn täglich, andere wechseln direkt zu Plugin-Alternativen wie NERDTree, dirvish oder fern.vim. Der Grund ist nicht die Funktionsfülle (die ist da), sondern die UI: netrw hat eine eigene Befehlssprache mit kryptischen Mehrzeichen-Kombinationen, einige Defaults wirken unkomfortabel, und der Tree-View muss erst per Konfig aktiviert werden. Dieser Artikel zeigt netrws zentrale Befehle, das Workflow-Setup, das den Datei-Manager im Alltag tragbar macht, und gibt am Ende eine Übersicht der wichtigsten Plugin-Alternativen.
netrw starten
netrw wird über mehrere Befehle gestartet, je nachdem ob man es im aktuellen Fenster, in einem Split oder in einem neuen Tab haben will:
| Befehl | Aktion |
|---|---|
:Explore / :Ex | netrw im aktuellen Fenster |
:Sexplore / :Sex | netrw in horizontalem Split |
:Vexplore / :Vex | netrw in vertikalem Split |
:Texplore / :Tex | netrw in neuem Tab |
:Lexplore / :Lex | netrw als sticky Sidebar links (Toggle-Mode) |
:e dir/ | netrw über :e mit Verzeichnis-Argument |
:e . | netrw im aktuellen Arbeitsverzeichnis |
:Lexplore ist die NERDTree-ähnliche Variante: bei wiederholtem Aufruf wird die Sidebar ein- bzw. ausgeblendet. Im Alltag damit als „Datei-Tree links daneben"-Workflow nutzbar.
Eine alternative Einstiegs-Variante: Tippt man im Normal-Mode -, öffnet netrw das Verzeichnis der aktuellen Datei. Schnelle Schritt-zurück-Operation in der Verzeichnis-Hierarchie.
" Wer `-` als „Verzeichnis von hier" nicht standardmäßig hat,
" kann es explizit setzen — gehört zur Default-Bind-Liste von netrw,
" kann aber per Override deaktiviert sein.
nnoremap <silent> - :Explore<CR>Navigation im netrw-Buffer
Sobald netrw geöffnet ist, sieht man eine Liste der Dateien im aktuellen Verzeichnis. Die wichtigsten Navigations-Befehle:
| Taste | Aktion |
|---|---|
| Enter | Datei öffnen / Verzeichnis betreten |
| - | Ein Verzeichnis nach oben |
| u | Zurück in der Verzeichnis-History (wie Browser-„zurück") |
| U | Vorwärts in der Verzeichnis-History |
| gh | Toggle: Hidden-Files (.dotfiles) ein-/ausblenden |
| i | Toggle: Listing-Style (thin / long / wide / tree) |
| s | Toggle: Sortier-Kriterium (Name / Time / Size / Extension) |
| r | Sortier-Reihenfolge umkehren |
| P | Datei im vorherigen Fenster öffnen (statt im netrw-Fenster) |
| o | Datei in horizontalem Split öffnen |
| v | Datei in vertikalem Split öffnen |
| t | Datei in neuem Tab öffnen |
| x | Datei mit der zugeordneten OS-App öffnen (xdg-open/open) |
Die Splits- und Tab-Varianten sind besonders nützlich, wenn netrw als Sidebar genutzt wird: o öffnet die Datei im rechten Hauptbereich, v macht einen zusätzlichen Vertical-Split daneben, t öffnet sie als neuen Tab.
Datei-Operationen
netrw kann mehr als nur navigieren — Dateien lassen sich direkt erzeugen, löschen, umbenennen und kopieren:
| Taste | Aktion |
|---|---|
| % | Neue Datei anlegen (Vim fragt nach Name) |
| d | Neues Verzeichnis anlegen |
| D | Datei / Verzeichnis unter Cursor löschen |
| R | Datei unter Cursor umbenennen |
| mf | Datei unter Cursor markieren |
| mu | Alle Marks aufheben |
| mt | Markiertes Target für Move/Copy setzen |
| mc | Markierte Dateien zum Target kopieren |
| mm | Markierte Dateien zum Target verschieben |
| mx | Externen Befehl auf markierte Dateien ausführen |
Der Mark/Target-Workflow ist ein eigenes Mini-System: erst Dateien markieren (mf auf jeder), dann Ziel-Verzeichnis aufrufen und mt drücken, dann mit mc (copy) oder mm (move) die Marks zum Target verschieben. Klingt umständlich, ist aber für Mehrfach-Operationen brauchbar.
" 1. In netrw im Quell-Verzeichnis:
mf " erste Datei markieren (Cursor drauf)
j mf " nächste markieren
j mf " dritte markieren
" 2. Zum Ziel-Verzeichnis navigieren (mit Enter)
mt " Target setzen
" 3. Operation auslösen
mm " markierte Dateien verschieben
" oder mc " kopierenBookmarks
Verzeichnisse, die man oft aufsucht (Projekt-Roots, Doku-Ordner, Config-Verzeichnisse), lassen sich als Bookmarks speichern:
| Taste | Aktion |
|---|---|
| mb | aktuelles Verzeichnis als Bookmark speichern |
| gb | zum letzten gespeicherten Bookmark springen |
| qb | Liste aller Bookmarks anzeigen |
| {n}gb | zum n-ten Bookmark in der Liste |
Bookmarks werden in der ~/.netrwbook persistiert und überleben Vim-Restarts.
" Im wichtigen Verzeichnis (z. B. ~/projects/site)
mb " Bookmark speichern
" Später, von irgendwo aus netrw:
gb " zum zuletzt gesetzten Bookmark
qb " alle Bookmarks listen
2gb " zum zweiten BookmarkDer oft gewünschte Tree-View
Default-netrw zeigt eine flache Liste. Für eine Tree-Ansicht wie in NERDTree gibt es die Option g:netrw_liststyle = 3:
" Tree-View statt flacher Liste
let g:netrw_liststyle = 3
" Banner ausblenden (das 5-zeilige Info-Banner oben)
let g:netrw_banner = 0
" Standard-Breite, wenn als Sidebar (Lexplore)
let g:netrw_winsize = 25
" Datei aus netrw im vorherigen Fenster öffnen
" statt das netrw-Fenster zu kapern
let g:netrw_browse_split = 4
let g:netrw_altv = 1Mit diesen vier Settings verhält sich netrw deutlich näher an dem, was viele User von NERDTree gewohnt sind: Tree-Layout, kein Banner, Sidebar-Breite gesetzt, Dateien öffnen im Haupt-Editor-Bereich statt im Tree-Buffer.
Im Tree-Modus klappen Verzeichnisse mit Enter auf und zu — als rekursive Hierarchie. Genau das, was man bei Datei-Browsern erwartet.
Hilfe und Inspektion in netrw
Wenn man die Befehle vergessen hat — netrw hat eine eigene Hilfe-Seite:
| Taste / Befehl | Aktion |
|---|---|
| F1 | netrw-Help-Buffer öffnen |
:help netrw | komplette netrw-Doku |
:help netrw-quickmaps | Cheat-Sheet aller Tastenkombinationen |
| qf | File-Info für Datei unter Cursor (Größe, Datum) |
| qF | Liste aller markierten Dateien |
:help netrw-quickmaps ist im Alltag das nützlichste Cheat-Sheet — eine kompakte Liste aller Befehle, im Editor sofort verfügbar.
Remote-Editing mit netrw
Eine selten genutzte, aber elegante Funktion: netrw kann Remote-Dateien über verschiedene Protokolle öffnen — SSH, FTP, HTTP, SCP, RCP. Dahinter ruft netrw die jeweiligen externen CLI-Tools auf.
:e scp://user@server/path/to/file.txt " über SCP
:e sftp://user@server/path/to/file.txt " über SFTP
:e http://example.com/page.html " HTTP-Lese-ZugriffIm Alltag nutzt das selten jemand — die :terminal-Variante mit ssh plus dortigem Vim ist meist angenehmer. Aber für gelegentliche Edits auf Servern ohne Vim-Installation ist netrws Remote-Mode brauchbar.
Wenn netrw nicht reicht: Plugin-Alternativen
netrw ist mächtig, aber seine UI hat charakteristische Schwächen: nicht-intuitive Befehle, langsame Reaktion bei großen Verzeichnissen, Fenster-Verhalten bei Splits kann irritieren. Wer ein moderneres UX möchte, wechselt zu einem der folgenden Plugins:
| Plugin | Charakter |
|---|---|
| NERDTree | Der Klassiker. Sidebar mit Tree, persistente Fenster-Geometrie, intuitive Bedienung, gut dokumentiert. |
| vim-vinegar | Erweitert netrw mit besseren Defaults — netrw bleibt, wird angenehmer. Minimal-invasiv. |
| dirvish | netrw als reiner Buffer — keine UI-Schicht, Dateien sind Listen-Einträge, alle Vim-Befehle wirken normal darauf. |
| fern.vim | Moderne Tree-Variante, schnell, mit eigener Erweiterungs-API. |
| vim-startify | Kein Datei-Manager im klassischen Sinn, aber ein Start-Bildschirm mit Recent-Files-Liste. |
| vifm.vim | Bindung zu vifm (eigenständiger Datei-Manager) als Vim-Integration. |
Eine pragmatische Empfehlung: vim-vinegar ist der minimal-invasive Einstieg, der netrw bleiben lässt, aber die Defaults glättet. Wer mehr will, springt zu dirvish (für Vim-native-Buffer-Workflows) oder NERDTree (für IDE-ähnliches Sidebar-Tree-Setup).
Diese Plugins werden im Kapitel Erweiterte Features ausführlich vorgestellt — für die Installation siehe Plugin-Management.
Besonderheiten
`-` als Schritt-zurück ist die nützlichste Taste
Im normalen Editor <Kbd>-</Kbd> drücken — und schon ist man im Verzeichnis der aktuellen Datei in netrw. Aus netrw heraus erneut - drücken — ein Level weiter hoch. Diese Navigation ist schneller als jeder Datei-Browser per Maus.
`g:netrw_banner = 0` ist eine Quality-of-Life-Verbesserung
Das fünfzeilige Header-Banner über jedem netrw-Buffer kostet Bildschirm-Platz und liefert in der Praxis kaum Information. Ausblenden mit der einen Zeile in der .vimrc ist eine der häufigsten netrw-Konfig-Anpassungen.
Tree-View nicht Default — aber jeder will ihn
let g:netrw_liststyle = 3 ist der Schalter für die Tree-Ansicht. Ohne diese Zeile sieht netrw aus wie ein flacher ls-Output. Mit ihr wie ein klassischer Datei-Baum. Warum das nicht Default ist, weiß keiner — ändern lohnt sich aber.
`mf` ist nicht „mark as favorite", sondern „mark file"
Erstkontakt-Verwirrung: mf markiert eine Datei für eine spätere Bulk-Operation. Es ist KEIN Bookmark (das ist mb). Das ist ein subtiler Unterschied, der bei der ersten Begegnung mit dem Mark-Workflow irritiert.
`vim-vinegar` ist netrws bester Freund
Wer netrw behalten will, aber unter den Defaults leidet, installiert vim-vinegar. Das Plugin schaltet das Banner aus, macht - zum natürlichen Schritt-zurück und glättet die häufigsten Fenster-Verhaltens-Stolperfallen. Eine Zeile in der Plugin-Liste, kein weiteres Setup.
`:Lexplore` mit Toggle-Verhalten
Anders als :Explore öffnet :Lexplore netrw als sticky Sidebar — und beim zweiten Aufruf schließt es sie wieder. Damit funktioniert es wie ein Tree-Sidebar-Toggle in einer IDE. Auf ein Mapping legen: nnoremap <silent> <leader>e :Lexplore<CR>.
Weiterführende Ressourcen
Externe Quellen
- Vim Help: netrw — vollständige netrw-Doku.
- Vim Help: netrw-quickmaps — kompakte Tasten-Übersicht.
- Vim Help: netrw-browse-maps — alle netrw-Mappings.
- tpope/vim-vinegar — netrw-Komfort-Plugin.
- preservim/nerdtree — der Datei-Tree-Klassiker.
- justinmk/vim-dirvish — netrw-Alternative im Vim-Native-Stil.