To main content

neovim: vims Nachfolger stellt sich vor

Veröffentlicht von Benjamin Marwell am

Mein Lieblingseditor, Vim, hat einen Nachfolger. Er heißt neovim und wurde von Thiago de Arruda ins Leben gerufen. Neovim soll viele Schwächen von vim ausmerzen und ihn fit für das 21. Jahrhundert machen.

NeoVim: Logo. Lizenz: MIT, http://goo.gl/AN7zW2.
NeoVim: Logo. Lizenz: MIT, http://goo.gl/AN7zW2.

Vim selbst ist ein Editor, der auf Basis des Unix-Editors vi (engl. visual ~ visuell) enstand. Er gilt als auf allen Unix-Systemen verfügbar und ist - neben Emacs - einer der meistgenutzten Editoren überhaupt. Nach einer steilen Lernkurve ist er ein sehr mächtiges Werkzeug und kann sogar zu einer IDE ausgebaut werden.

Crowdfounding für NeoVim auf Bountysource

Auf Bountysource hat neovim das dritte Bonusziel erreicht. Folgende Funktionen wird der Entwickler Thiago de Arruda einbauen:

  • Das Ursprungsziel von $ 10.000 ermöglicht ihm, den Sourcecode aufzuräumen, neu zu formatieren, das Build-System auf cmake umzustellen, Compiler-Optimierungen zu ermöglichen, OS-spezifischen Code durch Libraries auszutauschen und Unittests zu erstellen. Außerdem werden große, monolithische Dateien in ihre logischen Bestandteile zerlegt. Das IO-System wird auf libuv portiert, Feature-Makros mit unifdef  wurden entfernt.
  • Für die erreichten $20.000 wird er vimscript neu implementieren, so dass es nach LUA zwischenkompiliert wird. Hintergrund ist, dass LUA zum einen sehr viel schneller und einfacher zu nutzen ist. Andererseits wird mit LUA eine mächtige Sprache eingeführt, ohne die Abwärtskompatiblität zu vimscript zu verlieren.
  • Auch die Marke von $ 30.000 wurde erreicht. Mit diesem Finanzierungsziel wird er den gesamten Editor in eine Library refaktorieren. Dadurch sind andere GUIs in der Lage, den Editor zu implementieren. Möglich wäre damit etwa ein Eclipse mit integriertem vim/neovim.
  • Das Ziel von $ 40.000 für neovim wurde zu 40% erreicht. Mit der entstandenen Finanzierung möchte Thiago de Arruda alle globalen Variablen (ca. 1000 Stück) entfernen. Der Editor-Status soll stattdessen in einem Struct enthalten sein. Dadurch sind implementierende GUIs in der Lage, mehrere Instanzen des Editors zu spawnen.

Die Ziele sind sehr ehrgeizig, und trotzdem alle sinnvoll. Es ist schön, dass der Entwickler den Editor in eine Library portieren möchte. Der allgegenwärtigen Nutzung vim bzw. neovim steht damit nichts mehr im Weg.

Neovim-Entwicklung auf GitHub

Die Entwicklung wird vollständig auf GitHub durchgeführt. Daneben gibt es eine Homepage unter neovim.org. Die Google Plus-Community zu neovim ist ebenfalls sehr aktiv. Zuletzt gibt es noch Infos über den Twitteraccount @neovim auf Twitter.

Neovim - warum lua?

In den Zielen kurz angerissen, nutzt neovim nativ lua. Einen Link zur Entscheidungsfindung dazu hat Thiago dee Arruda auf Twitter gezwitschert:

In den verlinkten FAQs liest sich heraus, dass LUA zwar nicht so viel Bibliotheken wie z.B. Python mitbringt. Aber genau das sei der Sinn der Sache: Möglichst wenig Aufwand in die Integration einer Scriptsprache stecken, und gleichzeitig ein mächtiges, aber schlankes Skriptsystem wie vimscript bereitstellen.

Weitere Vorteile von Lua erläutert Niklas Fykholm in seinem Blog.

Vorteile von CMake

CMake ist ein Plattformunabhängiges Build-System. Das heißt, dass sich neovim demnächst auf allen Plattformen leicht kompilieren lässt. Das ist bereits jetzt der Fall, wie der Twitteruser nilsding (Free Software Fuchs) mit einem Screenshot beweist.

Abseits dessen fallen auch komplizierte Configure-Prozeduren weg, und auch die Abhängigkeiten lassen sich weiter verwalten. Wie der aktuelle Build-Prozess aussieht, wird sich wohl in den nächsten Wochen zeigen.

neovim weiterhin unterstützen

 Wer neovim weiter unterstützen möchte, kann dieses auf verschiedene Wege machen. Die offizielle Fundraising-Kampagne ist leider zu Ende, aber neben anhaltender finanzieller Unterstützung ist eine direkte Projektbeteiligung möglich.

Team neovim auf Bountysource

Fundraising verpasst? Kein Problem. Wie erwähnt ist noch eine finanzielle Spende an das neovim-Team möglich. Details dazu finden sich auf der Bountysource-Teamseite:

https://www.bountysource.com/teams/neovim

Leider gibt es keine Bounties, also keine Spendenziele mit Dankeschön mehr. Euer Name erscheint also nicht in der Datei Backers.md. ;-) Kein Problem, denn ihr könnt mit dem Geld die Entwickler auch direkt bei der weiteren Arbeit unterstützen, und/oder einzelne Issues lösen. Für das Lösen der Issues ist es übrigens möglich, selbst Geld einzusammeln.

Issues von nevim lösen

Der Issue-Tracker von neovim füllt sich so langsam. Details zu den Fehler finden sich auf der GitHub-Issues-Seite. Zusätzlich ist es - wie oben beschrieben möglich - Geld für die Lösung der Issues zu sammeln. Dazu nutzt man die Issue-Seite auf Bountysource.

Neovim in den Medien

Trivia zu vim & neovim

Gefunden im Kartoffelhaus Bad Homburg vor der Höhe: Das Putzmittel vim aus Omas Zeiten! Das Bild wurde leider bei schlechter Beleuchtung und mangels Platz perspektivisch verzerrt aufgenommen, aber dank GIMP konnte ich es zumindest etwas geradeziehen und vom Hintergrund befreien.  :-)

Vim Putzmittel von Oma: VIM benutzt, schnell geputzt!
Vim Putzmittel von Oma: VIM benutzt, schnell geputzt!

Frage an meine Leser: Was denkt ihr von neovim?