Texteditor für Linux, Shell und mehr: Vim 9 ist da, das Warten hat sich gelohnt
![](https://heise.cloudimg.io/width/700/q75.png-lossy-75.webp-lossy-75.foil1/_www-heise-de_/imgs/18/3/5/6/7/5/4/6/shutterstock_736041346.jpg-0dcd8a63b412669c.jpeg)
(Bild: Farhad Bek / Shutterstock)
Das erste Vim-Major-Release seit 2016 ist erschienen. Die neue Syntax ermöglicht schnelle Skriptverarbeitung und eine Anpassung an bekannte Programmiersprachen.
Version 9 des textbasierten Editors Vim hatte lang auf sich warten lassen, jetzt ist sie da. Das letzte Major Release liegt bereits sechs Jahre zurück, was bei dem Tool aber nicht ungewöhnlich ist – bereits die Vorgängerversion aus dem Jahr 2016 hatte 7.x erst nach zehn Jahren abgelöst. Das Team hinter Vim gilt als überschaubar, die Entwicklung soll bis heute überwiegend in der Hand des Vim-Autors Bram Moolenaar und eines kleinen Kreises um den niederländischen Open-Source-Entwickler liegen. Auf den ersten Blick wirkt das alles sehr retro, und manche Leser könnten jetzt fragen: Ein textbasierter Editor, braucht den noch wer?
Präzises, nach Bedarf konfigurierbares Werkzeug für Kenner
Es gibt durchaus praktische Gründe dafür. Linux-Fans dürften am wenigsten mit Vim fremdeln, denn im Unix- und Linux-Umfeld ist er weiterhin ein geläufiger Editor, teils sogar Standard zum Bearbeiten von Konfigurationsdateien. Wer sich darauf einlässt, erhält nach Einschätzung von Kennern einen erstaunlich modernen Editor, der als präzises, weitreichend konfigurierbares Werkzeug auch unter anderen Betriebssystemen dienlich sein kann. Die Basics gelten als leicht erlernbar, während ein professionellerer Einsatz eine etwas steilere Lernkurve voraussetzt. Die neue Version könnte nun einige, die bislang Vorbehalte hatten, auf den Geschmack bringen.
Bislang hatte die umfassende Konfigurierbarkeit Vims einen Haken, sie hatte den Editor deutlich runtergebremst. Hier hat das Vim-Team für die neue Hauptversion angesetzt und das Tool grundlegend überarbeitet: Vim 9 bricht mit den lokalen Variablen und Dictionaries der Vorgängerversion, die Vimscripte sind großteils neu geschrieben und sollen beim Ausführen laut Angaben der Herausgeber in der Releasemeldung zehn- bis hundertmal so schnell sein wie bisher. Abwärtskompatibilität ist dadurch nicht mehr gegeben, allerdings dürfte die dabei gewonnene Beschleunigung Entwickler damit versöhnen.
Neue Syntax, aber kein Drama wie bei Python 2
Die Syntax der Vim-Skriptsprache galt bisher als kompliziert und hatte Einsteiger regelmäßig irritiert oder sogar abgeschreckt, auch hier hat das Vim-Team grunderneuert. Laut Release Notes ist die Struktur der Skripte ab Version 9 vereinfacht und die Skriptsprache dadurch verständlicher geworden. Moolenaar und sein Team haben begonnen, die Syntax zumindest teilweise an andere Skript- und Programmiersprachen wie JavaScript, TypeScript und Java anzupassen, die Entwicklern geläufiger sind.
Historische Altlasten hat das Vim-Team über Bord geworfen, so lassen sich mit Vim 9 Argumente und lokale Variablen nicht mehr mit a:
und s:
definieren. Grundsätzlich verspricht das Team aber auch allen mit großen Legacy-Skript-Sammlungen, dass alte Skripte weiterhin wie gewohnt ihren Dienst verrichten sollen und versichert in der Mailingliste der Vim-Community besorgten Nutzern, dass man nicht vorhabe, Legacy-Skript aus dem Support fallen zu lassen: "Kein Drama wie bei Python 2" ("No drama like with the deprecation of Python 2 [1]") lautet das Motto.
Lokale Plug-ins eingefroren, Popup-Menü ersetzt wildmenu
Im Tool sitzt ein Interpreter, der verschiedene Skriptsprachen direkt auszuführen vermag. Bislang war für jede Programmiersprache ein eigenes Programm enthalten, weshalb Administratoren zum Nutzen dieser Funktionalität jeweils einzelne, sprachspezifische Pakete zu installieren hatten. Vim 9 verhängt einen Feature Freeze für die Schnittstelle und läutet einen Richtungswechsel ein: Künftig soll Vim die Interpreter der Skriptsprachen statt als lokale Plug-ins extern nutzen und alle unterstützten Sprachen unmittelbar ausführen. Neue Sprachen soll Vim künftig auch unterstützen, unter anderem Go.
Neu ist unter anderem auch das Popup-Menü, das sich statt der bisher angebotenen "wildoptions" durch einen Wechsel der Einstellungen zu "pum" (für popup menu statt des bisherigen wildmenu beziehungsweise wmnu [2]) aktivieren lässt. Wer Vim damit nutzt, soll künftig mehr Treffer sehen. Zuvor war die Darstellung von Matches recht eingeschränkt. Neue Farbschemata hat das Team ebenfalls eingepflegt, wie sie im GitHub-Repository von Vim zu finden [3] sind. Eine einzige Änderung gilt als inkompatibel mit dem vorigen Release: Sie betrifft die Lua-Arrays, die nun statt auf Null auf Eins basieren (mehr hierzu in den Release Notes, speziell im Abschnitt zu den Unterschieden [4]).
Eine Liste aller Änderungen und neuen Befehle in Vim 9 finden sich auf der Projekt-Website [5]. Dort stellt Bram Moolenaar einen Leitfaden zur Bedienung des Texteditors [6] bereit und es gibt einen FAQ-Bereich zum Klären häufiger Fragen [7]. Übersichtlich wirkt auch der von Martin Tournoij gepflegte Vimlog, ein Changelog für den Editor Vim [8], der alle Änderungen seit Version 8.2 [9] verzeichnet. Wer sich für die Geschichte des Editors interessiert, könnte einen weiterhin lesenswerten Beitrag aus der c't zur Verwendung von Vim [10] spannend finden.
Vims Wurzeln und Nachruf auf Vim-Freund Sven Guckes
Vim ist ein Klon des Unix-Ur-Editors Vi, wobei Vim für "verbessertes Vi" (Vi iMproved) steht. Von der Bedienung her sind beide fast identisch [11], wobei Vim mit mehr Funktionen ausgestattet und flexibler zu handhaben ist. Wer heutzutage in macOS oder einer Linux-Distribution vi
eintippt, arbeitet meist ebenfalls mit Vim, das lediglich den beschränkten Funktionsumfang von Vi simuliert. Anhänger von Vim legen Wert auf die Scripting-Engine, mit der sie Vim mittels Vimscript-Funktion maximal an die eigenen Bedürfnisse anpassen können, um das Verhalten des Editors besser zu steuern. Zu den beliebtesten Features zählen das Syntax-Highlighting, das dynamische Einbinden von Wörterbüchern und verschiedene Einstellungen auf Basis externer Faktoren, die sich per if
-Anweisung einbinden lassen.
Vim 9 ist dem im Februar 2022 früh verstorbenen Entwickler Sven Guckes gewidmet, der in der Linux- und Open-Source-Community bekannt war und das Projekt Vim unterstützt hatte. An den Vorbereitungen zum aktuellen Release soll er maßgeblich beteiligt gewesen sein. Mehr zu Sven Guckes und seinem Wirken findet sich im Nachruf in der iX.
(sih [12])
URL dieses Artikels:
https://www.heise.de/-7157023
Links in diesem Artikel:
[1] https://lwn.net/Articles/899302/
[2] https://vimhelp.org/options.txt.html#%27wildmenu%27
[3] https://github.com/vim/colorschemes
[4] https://vimhelp.org/vim9.txt.html#vim9-differences
[5] https://vimhelp.org/version9.txt.html#new-9
[6] https://vimhelp.org/#reference_toc
[7] https://vimhelp.org/vim_faq.txt.html
[8] https://www.arp242.net/vimlog/
[9] https://www.heise.de/news/Texteditor-Vim-8-2-laesst-das-Killer-Schaf-los-4614319.html
[10] https://www.heise.de/select/ct/2018/12/1528078084581243
[11] https://www.heise.de/select/ct/2018/12/1528078084581243
[12] mailto:sih@ix.de
Copyright © 2022 Heise Medien