Der Texteditor Vim punktet mit Flexibilität und Anpassungsfähigkeit. Allerdings müssen Sie dazu erst einmal die Syntax erlernen und die Konfigurationsdatei .vimrc befüllen.
Das Herzstück Vims ist seine Konfigurationsdatei ~/.vimrc, die das Tool bei jedem Programmstart neu lädt. Sie zeichnet maßgeblich für die Funktionalität des Editors verantwortlich und enthält Informationen von einzubindenden Plugins über Anweisungen zum Verhalten und Aussehen bis hin zu eigenen Tastenkombinationen und Funktionsskripten. In welcher Reihenfolge Sie die Textdatei befüllen, spielt keine Rolle. Es hat sich jedoch eingebürgert, zuerst Plugins zu laden, dann das Verhalten und Aussehen von Vim festzulegen und mit eigenen Tastenkombinationen zu schließen.
Doch Vorsicht vor einer überfüllten .vimrc. Vim-Experten raten insbesondere zur Sparsamkeit beim Umgang mir Plugins [1] – hier ist weniger oft mehr [2]. Anstatt die Konfigurationsdatei zu überfrachten, sollten Sie im Zweifel lieber gleich ein Plugin nutzen oder schreiben. Für den Einstieg empfiehlt sich Tim Popes Vim-Sensible [3], das für einige grundlegende Annehmlichkeiten sorgt. Listing 1 zeigt, wie Sie Vim-Sensible über die in Vim bereits integrierte Paketunterstützung manuell installieren.
Listing 1
Vim-Sensible
$ mkdir -p ~/.vim/pack/tpope/start $ cd ~/.vim/pack/tpope/start $ git clone https://tpope.io/vim/sensible.git
Alternativ lässt sich dazu ein Plugin-Manager wie Vim-Plug, Vundle oder Pathogen einsetzen, die alle ähnlich funktionieren und beispielsweise das Aktualisieren von Plugins übernehmen. Wir konzentrieren uns hier auf Vim-Plug, das sich leicht installieren, einrichten und nutzen lässt. Über einen einfachen Curl-Befehl legen Sie eine .vim-Datei von Github im lokalen Vim-Verzeichnis ab (Listing 2). Anschließend rufen Sie die ausgewählten Plugins in der .vimrc über eine spezielle Syntax nach dem Schema aus Listing 3 auf.
Listing 2
Vim-Plug
$ curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
Listing 3
Vim-Plug-Aufruf
call plug#begin() plug 'GitHubNutzer/PluginName' [...] call plug#end()
Haben Sie die gewünschten Plugins in der .vimrc eingetragen und diese gespeichert, führen Sie im Vim-Command-Modus den Befehl PlugInstall aus (Abbildung 1). Der Editor installiert daraufhin alle Plugins ohne weiteres Zutun direkt von Github nach. Für manche Plugins gibt es gelegentlich Aktualisierungen, die Sie bei Bedarf mit :PlugUpdate einspielen. Eine nicht mehr benötigte Erweiterung deinstallieren Sie, indem Sie die entsprechende Zeile wieder aus der .vimrc löschen und danach im Editor :PlugClean ausführen. Alternativ löschen Sie den Plugin-Ordner in ~/.vim/pack/ von Hand.

Abbildung 1: Das Vim-Kommando PlugInstall überprüft alle Plugins in der .vimrc und installiert fehlende Erweiterungen gegebenenfalls nach.
Zur Riege der für die Textbearbeitung sinnvollen Plugins zählen beispielsweise tpope/vim-sensible für einfache Hacks, dpelle/vim-LanguageTool für die Rechtschreibkorrektur und Java oder junegunn/goyo.vim für den ablenkungsfreien Modus. Mit junegunn/limelight.vim richten Sie den Fokusmodus ein, mit reedes/vim-pencil eine normale Cursor-Steuerung. Die Grammatik für englische Texte liefert reedes/vim-wordy, mzlogin/vim-markdown-toc generiert ein Inhaltsverzeichnis aus Markdown-Überschriften.
Als besonderer Leckerbissen entpuppt sich der in Vim integrierte Dateibrowser Netrw [4], mit dessen Hilfe Sie sogar Remote-Dateien über FTP oder SSH editieren (Listing 4). Legen Sie etwas mehr Wert auf die Optik, werfen Sie in Sachen Dateiexplorer am besten einen Blick auf Nerdtree [5] . Sie beziehen dazu via .vimrc das Plugin scrooloose/nerdtree und erweitern es gegebenenfalls über tiagofumo/vim-nerdtree-syntax-highlight und ryanoasis/vim-devicons. Das Ganze lässt sich durch schicke Themes komplettieren: morhetz/gruvbox verspricht hohen Kontrast und junegunn/seoul256 das Gegenteil.
Listing 4
Remote-Zugriff mit Netrw
$ vim ftp://Ziel-PC/Pfad/zur/Datei $ vim scp://Ziel-PC/Pfad/zur/Datei
Allerdings ergeben nicht alle Plugins für alle Anwendungen Sinn. Zu den wichtigsten Erweiterungen für Vielschreiber zählen vermutlich Goyo und Limelight, die Vim in eine ablenkungsfreie Schreibumgebung verwandeln, den Text zentrieren und den Fokus auf den Inhalt legen (Abbildung 2). Nutzt man dazu noch ein schönes Theme wie Gruvbox oder Seoul256, macht die Textproduktion doppelt Spaß.

Abbildung 2: So könnte eine .vimrc aussehen, hier mit untypisch hellem Hintergrund für die bessere Erkennbarkeit bei Print-Medien.
Anpassungen
Nun geht es daran, Vim an Ihre persönlichen Vorlieben anzupassen. Möchten Sie sich vorab grundsätzlich in die Funktionen des Editors einlesen, greifen Sie auf einschlägige Publikationen wie “A Byte of Vim” [6] zurück. Einen weiteren guten Anlaufpunkt bietet die Hilfefunktion: Über :help Befehl öffnen Sie bei Unklarheiten bezüglich der einzelnen Kommandos die Manpage. So liefert:help motion etwa Informationen zur Bewegung in Vim. Das Hilfefenster schließen Sie über :q.
Listing 5 zeigt einige Beispiele für häufig in der .vimrc genutzte Befehle. Behagt Ihnen beispielsweise die normale Länge eines Tabstopps nicht, ändern Sie sie einfach passend (Zeile 16). Das Syntax-Highlighting (Zeile 10) und Themes (Zeile 2) lädt Vim direkt ab Programmstart. Optionale Besonderheiten für Limelight, die bei manchen, zusätzlichen Plugins oder Einstellungen laut Entwickler nötig sind, finden sich in Listing 6.
Listing 5
Häufige Befehle
" Theme colorscheme seoul256 " Hintergrund dunkel set background=dark " Schrift fuer Export set guifont=CodeMono:h13 " Error-Pling aus set noerrorbells " Syntax-Highlighting an syntax on " Kein Umbruch mitten im Wort set wrap " Autocomplete bei allen Kommandos set wildmenu " Tabstopp = vier Leerzeichen set tabstop=4 " automatisches Einruecken aktiv set autoindent " Pos.-Anzeige links ausblenden set noruler
Listing 6
Besonderheiten bei Limelight
let g:limelight_conceal_ctermfg = 'gray' let g:limelight_conceal_ctermfg = 240 let g:limelight_conceal_guifg = 'DarkGray' let g:limelight_conceal_guifg = '#777777'
Tastenkombinationen
Bei eigenen Tastenkombinationen für Funktionen oder gar Skripte setzt Vim auf eine recht klare, schnell durchschaubare Syntax. Im Kommando map <Taste> Befehl <CR> sorgt das <CR> dafür, dass Vim den Befehl bei Tastendruck ausführt.
Listing 7
Tastenkombinationen
map <F5> :Goyo <CR> map <F6> :Limelight!! <CR> map <F7> :setlocal spell! spelllang=de_de<CR> map <F8> :SoftPencil <CR> map <C-n> :NERDTreeToggle <CR>
Eine Auswahl empfehlenswerter Tastenkombinationen zeigt Listing 7. Damit aktivieren Sie die Plugins mit frei wählbaren Funktionstasten und schalten Nerdtree mit [Strg]+[N] (das C steht für [Strg]) an und aus. Alle Plugins lassen sich als An/Aus-Umschalter nutzen. Bei Limelight klappt das mit den beiden Ausrufezeichen (Zeile 2), bei Spell mit einem einzelnen Ausrufezeichen (Zeile 3), und Goyo kann das von Haus aus (Zeile 1). In diesem Beispiel wird SoftPencil nur eingeschaltet (Zeile 4) und bleibt so lange aktiv, bis Sie beispielsweise den Goyo-Modus beenden.
Mit map aufgerufene Befehle greifen im Normalmodus, mit vmap gestartete nur im visuellen Modus und per imap aktivierte nur im Insert-Modus, also während Sie schreiben. Das Kommando aus der ersten Zeile von Listing 8 setzt die Schreibmarke im Insert-Modus ans Ende des Absatzes oder der aktuellen Zeile. Der Befehl aus der zweiten Zeile verschiebt sie an den Anfang. Auf diese Weise wechseln Sie mit [Strg]+[E] und [Strg]+[A] schnell zwischen den beiden Positionen hin und her, ohne den Modus wechseln zu müssen.
Listing 8
Schreibmarke
imap <C-e> <esc>$i<right> imap <C-a> <esc>0i
Überschreiben Sie eine bereits existierende Tastenkombination, erhält die neue Funktion Vorrang, bis Sie sie wieder entfernen. Sie können jeden Befehl, der sich im Command-Modus ausführen lässt, einer Tastenkombination zuordnen.
Darüber hinaus lassen sich kleine, aus verknüpften Kommandos bestehende Skripte schreiben. Erlaubt ist hier, was gefällt, gebraucht wird und möglich ist. Beispielsweise könnten Sie auf Knopfdruck alle X durch ein U ersetzen oder – etwas schwieriger – alle mit LanguageTool gefundenen Schreibfehler durch den ersten Korrekturvorschlag.
Fazit
Haben Sie alle gewünschten Einstellungen angepasst, speichern Sie Ihre .vimrc mit [Umschalt]+[.][W] und kopieren eine Sicherungsversion in die Cloud, auf einen Dateiserver oder einen USB-Stick. Damit ist das Programm nun auf Ihre Bedürfnisse zugeschnitten, Ihrer Karriere in Vim steht also nichts mehr im Weg. (csi/jlu)
Der Autor
Der freie Autor Claudius Grieger schreibt mit Vim oft lange Texte. Aktuell probiert er PopOS als Alternative zu Arch Linux aus.
Infos
- “How to Do 90 Prozent of What Plugins Do (With Just Vim)”: https://www.youtube.com/watch?v=XA2WjJbmmoM
- “Vim without plugins; best tricks?”: https://www.reddit.com/r/vim/comments/iysgq4/vim_without_plugins_best_tricks/
- Vim-Sensible: https://github.com/tpope/vim-sensible
- Netrw: https://www.vim.org/scripts/script.php?script_id=1075
- Nerdtree: https://github.com/preservim/nerdtree
- “A Byte of Vim”: https://vim.swaroopch.com/byte-of-vim.pdf





