Was ist Neovim? Wie unterscheidet es sich von Vim? Und warum sollte es mich interessieren?

118

Ich habe von Neovim gehört . Wie unterscheidet es sich von Vim? Alle Punkte auf der Homepage sind nur architektonische Änderungen "unter der Haube". Was ist für mich als Benutzer der Unterschied?

Martin Tournoij
quelle
1
Die asynchrone Funktion ist ein Lebensretter. Es macht vim so viel flüssiger und viele Plugins können es ausnutzen.
Tommy
Der Tutor wurde verbessert. Es sieht anders aus.
Fernando Rodriguez
"Eine gut aussehende Website, das ist eine Sache, die Neovim richtig gemacht hat." - Bram Moolenaar aus dem Interview
Michael
Einige der grundlegenden Entscheidungen scheinen seltsam und irrelevant für die Hauptziele zu sein ... Viele fühlen sich wie jemand an, der den alten Code nicht mag und es „richtig“ machen möchte. Ich kann dem zustimmen, dass der alte Code hässlich ist. Es wird jedoch sehr viel Mühe kosten, eine neue Implementierung vorzunehmen. Es ist sehr ähnlich zu dem, was mit Elvis passiert ist: Ein Umschreiben würde es viel besser machen, aber es dauerte so lange, bis Vim mehr Funktionen hinzufügte, dass es schließlich nicht mehr so ​​viele Elvis-Benutzer gab. Und das neu geschriebene Elvis hat vielleicht einen netten Code, aber die Benutzer bemerken das nicht. binpress.com/vim-creator-bram-moolenaar-interview
NeilG
Ich hoffe, dass die netten Dinge, die NeoVim bietet, wieder zu Vim hinzugefügt werden können. Ich meine, wer möchte keine bessere Plugin-Unterstützung, eine bessere GUI und Einbettung? Die große Frage ist, wie das geht und wer es richtig umsetzen wird. binpress.com/vim-creator-bram-moolenaar-interview
NeilG

Antworten:

81

Genau wie auf der neovim-Homepage beschrieben, ist es das Ziel von neovim, den Weg für ein besseres und offeneres Open Source-Projekt zu ebnen.

Die architektonischen Änderungen bringen nicht nur mehr Stabilität und Performance für vim, sondern machen den Code auch viel wartbarer und senken die Eintrittsbarriere für alle, die daran interessiert sind, einen Beitrag zu leisten.

Zu den wichtigsten Änderungen gehört auch die Kernfunktion des Zugriffs auf die asynchrone Ausführung von Jobs / Aufgaben in vim, die seit langer Zeit eine der am häufigsten nachgefragten Funktionen von vim ist. Dies kann dazu beitragen, die Leistung von vim weiter zu verbessern, insbesondere, weil vim nicht blockiert werden muss, während ein Hintergrundjob etwas ausführt.

Als VIM-Benutzer dürfte sich nicht viel ändern, außer der Tatsache, dass Neovim als Software viel schneller wachsen sollte (Behebung von Problemen, Hinzufügen von Funktionen) als Standard-VIM und auf lange Sicht eine viel bessere Leistung aufweisen wird.

Dhruva Sagar
quelle
24
+1. Lassen Sie mich auch hinzufügen, dass die Tatsache, dass es nur sehr wenige vom Benutzer sichtbare Änderungen gibt, eine gute Sache ist.
Carlosdc
27
Dies liest sich eher wie eine Wiederholung einer Pressemitteilung als wie ein tatsächlicher Überblick darüber, warum es jemanden interessieren sollte. Ich benutze vim zum Beispiel seit zwei Jahrzehnten und kann mich nicht erinnern, wann mir das Kernprogramm das letzte Mal irgendeine Art von Instabilität gezeigt hat. Warum sollte ich mich also für "stabiler" interessieren?
Caleb
2
Asynchrone Aufgaben sollten bedeuten, dass die Benutzeroberfläche von vim nicht mehr blockiert wird, um im Hintergrund zu arbeiten.
Alxndr
3
Gibt es in den zwei Jahren irgendwelche Beweise dafür , dass Neovim aktiv ist, dass es schneller wächst und eine bessere Leistung aufweist?
Sparhawk
8
Es stimmt nicht mehr, dass Vim keine Unterstützung für die asynchrone Ausführung von Hintergrundjobs bietet.
Rich
35

Ich spreche speziell an:

Warum sollte es mich kümmern? Was ist für mich als Benutzer der Unterschied?

Das, worüber ich mich als Vim-Benutzer am meisten freue, sind die neuen Arten von Plugins, Integrationen und Schnittstellen, die durch die Änderungen unter der Haube von Neovim ermöglicht werden.

Mit der Zeit werden Sie beeindruckende Plugins und Programme sehen, die mit Neovim, aber nicht mit Vim funktionieren. Es gibt eine Liste von Neovim-spezifischen Plugins: Hier in Neovims Github .

Ich weiß nicht, wie aktuell es ist, aber ich freue mich, dass es wächst, wenn wir mehr Tools erhalten, um das Codieren effizienter und unterhaltsamer zu gestalten.

Jim Garvin
quelle
15

Mein eigener Lieblingszusatz, den Neovim auf den Tisch bringt, ist der Terminal-Modus. Sie können jetzt Ihr Neovim-Fenster teilen und einen Terminal-Emulator auf der einen Seite ausführen und eine Datei auf der anderen Seite bearbeiten! Ich nehme an, Sie könnten Neovim jetzt sogar in sich laufen lassen, nur für den Fall, dass Sie das wirklich wollten.

Asynchrone Plugins werden auch in Kürze von großem Nutzen sein. Dies bedeutet, dass wir nach nur 40 Jahren des Wartens endlich eine wirklich gute Code-Vervollständigung haben können!

Neovim bietet auch eine bessere Mausunterstützung als Vim.

Johnathan Andersen
quelle
2
Sie sollten es Metavim nennen: P
Tumbler41
Ich kenne keine mausspezifischen Änderungen in Neovim, die es besser machen würden als Vim.
Jamessan
Im Moment fällt Ihnen ein, dass Sie sich in einer Terminal-SSH-Sitzung befinden, Neovim öffnen und auf eine Stelle klicken können, um sie zu bearbeiten. Ich denke nicht, dass Vim das kann, obwohl es möglich ist, dass ich noch nicht groß genug bin .vimrc! Ich denke, dies könnte besser als ssh-Unterstützung als als Mausunterstützung bezeichnet werden.
Johnathan Andersen
Es ist definitiv möglich, die Maus in Vim über eine SSH-Verbindung zu verwenden (ich habe es gerade ausprobiert), aber wenn Sie nicht in der Lage waren, es in Vim zum Laufen zu bringen und es standardmäßig in NeoVim funktioniert, denke ich, das ist ein Datenpunkt zugunsten Ihrer Aussage, dass die Unterstützung in NeoVim ist besser;).
Rich
1
Ich benutze seit einiger Zeit die Maus in Vim over SSH von Putty unter Windows mit einer einzigen set mouse=aZeile in vimrc
Thunderbeef
5

Zwei Punkte, die von anderen Antworten noch nicht angesprochen werden und für einen Benutzer interessant sein könnten, auch oder gerade für neue Benutzer ohne (oder mit einer kleinen) Konfigurationsdatei:

  1. NeoVim versucht nicht , standardmäßig Vi-kompatibel zu sein . Sie haben viele Standardwerte für die Einstellungen geändert und diskutieren aktiv solche Änderungen: # 2676 , # 6289
  2. Es kann in einen anderen Prozess eingebettet werden (erinnern Sie sich an die Netbeans-Integration ?) Und verfügt über viele verschiedene GUIs, sodass MacVim nicht mehr die schickste GUI ist, die Sie für Ihr System finden können $EDITOR.
Lucas
quelle