Nach zwei Jahren Entwicklung wurde der Texteditor Vim 9.2 veröffentlicht. Der Vim-Code wird unter einer eigenen Copyleft-Lizenz verteilt, die mit der GPL kompatibel ist und eine uneingeschränkte Nutzung, Verbreitung und Bearbeitung des Codes ermöglicht. Das Hauptmerkmal der Vim-Lizenz besteht darin, dass Änderungen zurückgegeben werden müssen – Verbesserungen, die in Drittprodukten umgesetzt werden, müssen an das ursprüngliche Projekt zurückgegeben werden, falls der Maintainer von Vim diese Verbesserungen als wertvoll erachtet und einen entsprechenden Antrag stellt. Im Hinblick auf die Verbreitung gehört Vim zu Charityware, d.h. anstelle des Verkaufs des Programms oder der Sammlung von Spenden für das Projekt bitten die Autoren von Vim darum, einen beliebigen Betrag an eine Wohltätigkeitsorganisation zu spenden, wenn dem Nutzer das Programm gefällt.
Wesentliche Verbesserungen:
- In die grafische Benutzeroberfläche (gvim) wurde die Unterstützung für das Wayland-Protokoll integriert, einschließlich der Möglichkeit, die Zwischenablage in Umgebungen auf Basis von Wayland zu verwenden.
- Auf unixähnlichen Systemen wurde die Unterstützung für die Spezifikation von Freedesktop.org XDG Base Directory implementiert, und es wurde die Möglichkeit geschaffen, das Verzeichnis „~/.config/vim“ zur Speicherung der Einstellungen zu nutzen.
- Im Benutzerinterface wurde eine vertikale (seitliche) Registerkartenleiste (tabpanel) implementiert, die als Alternative zur horizontalen oberen Leiste genutzt werden kann.
- Im grafischen Interface für Windows wurde die Unterstützung für den Dunkelmodus in Menüs und Überschriften hinzugefügt. Die Unterstützung für den Vollbildmodus wurde verbessert und qualitativ hochwertigere Icons sind jetzt in der Symbolleiste verfügbar.
- Im Autovervollständigungsmechanismus im Einfügemodus wurde die Unterstützung für ungefährende Suche hinzugefügt, die es ermöglicht, ungenaue Übereinstimmungen mit dem Muster zu finden (zum Beispiel, Wörter mit Tippfehlern zu erkennen). Außerdem wurde die Möglichkeit implementiert, die Eingabe von Wörtern direkt aus Registern zu vervollständigen (die Kombination CTRL-X CTRL-R zeigt ein Auswahlmenü zum Einfügen von Wörtern aus den Vim-Registren an). Im Parameter "completeopt" wurden Flags hinzugefügt: "nosort", um die Sortierung der Vorschlagsliste zu deaktivieren, und "nearest", um die Priorität der Wörter in der Nähe des Cursors zu erhöhen.
- Ein Plugin für interaktive Schulungen (":Tutor") wurde integriert, das Informationen anschaulich darstellt, das Fortsetzen von unterbrochenen Aufgaben ermöglicht und die Richtigkeit der ausgeführten Befehle überprüfen kann.
- Die Skriptsprache bietet eingebauten Support für Enumerationen (Enum), generische Funktionen (Generic) und Tupel (Typ Tuple). Es wird die Möglichkeit bereitgestellt, eingebaute Funktionen in Form von Objektmethoden aufzurufen. Klassen unterstützen jetzt protected-Konstruktoren _new(). Zur Kompilierung von Methoden wurde der Befehl „:defcompile“ eingeführt.
- Im Dateivergleichsmodus (diff mode) wurde der Algorithmus „linematch“ hinzugefügt, der über die gleichnamige Option in den Einstellungen „diffopt“ aktiviert wird. Dieser findet ähnliche Teile von Zeilen und richtet sie gegeneinander aus, um eine genauere Hervorhebung von Änderungen zu ermöglichen. Eine neue Option „diffanchors“ erlaubt es, manuell „Anker“ zu definieren, um die Datei in Abschnitte zu unterteilen, die unabhängig voneinander verglichen werden, was den Vergleich zwischen nicht miteinander verwandten Teilen komplexer Dateien ausschließt. Die Hervorhebung von einzelnen Zeichen in einer Zeile wurde verbessert — um diese Hervorhebung anzupassen, wurde in „diffopt“ die Option „inline“ hinzugefügt, die die Werte „inline:simple“ (wie zuvor), „inline:char“ (Hervorhebung auf Zeichenebene) und „inline:word“ (Hervorhebung auf Wortebene) annehmen kann.

- Die Standardwerte der Parameter wurden geändert:
- ‘history’ (50 => 200)
- ‘backspace’ («» => «indent,eol,start», typisches Verhalten der Backspace-Taste)
- ‘diffopt’ («internal,filler» => «internal,filler,closeoff,indent-heuristic,inline:char»)
- ‘fontsize’ (10pt => 12pt, optimal für High-DPI-Monitore)
- ‘showcmd’ (Aus => Ein, Befehle sind immer sichtbar)
- ‘ruler’ (Aus => Ein, zeigt die Position des Cursors an)
Quelle: opennet.ru
