Vim-Konfiguration individuell anpassen

Aus LinuxUser 11/2022

Vim-Konfiguration individuell anpassen

© serezniy / 123RF.com

Maßgeschneidert

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 <code>PlugInstall</code> &uuml;berpr&uuml;ft alle Plugins in der <code>.vimrc</code> und installiert fehlende Erweiterungen gegebenenfalls nach.

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&ouml;nnte eine <code>.vimrc</code> aussehen, hier mit untypisch hellem Hintergrund f&uuml;r die bessere Erkennbarkeit bei Print-Medien.

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.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 11/2022 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben