Heute habe ich beschlossen, Vi anstelle von Vim zu versuchen, ich wollte sehen, wie unterschiedlich es ist. Ich bemerkte überhaupt keine großen Unterschiede, das größte, was mir auffiel, war, wie Vi es nicht sagte, -- INSERT --
als ich in den Einfügemodus ging, und es gab einige geringfügige Unterschiede in der Benutzeroberfläche.
Das hat mich gefragt, was die größten Unterschiede zwischen Vi und Vim sind.
original-vi
Loovjo
quelle
quelle
Antworten:
In vim gibt es tatsächlich einen Hilfebefehl, der Sie über die Unterschiede informiert:
:help vi_diff
Von Vims Seite sind die größten:
quelle
Vim bietet viele Funktionen, die Vi nicht bietet, sogar Funktionen, die offensichtlich keine "erweiterten" Funktionen sind.
In der Praxis bedeutet dies, dass Sie, wenn Sie an Vi gewöhnt sind, wahrscheinlich nur sehr wenige Unterschiede feststellen werden, wenn Sie Vim (oder einen anderen Vi-Klon) verwenden, aber wenn Sie an Vim gewöhnt sind und wenn Ihre "Reflexe" Funktionen wie enthalten Hervorheben des visuellen Modus, jede Tastenaktion, die mit "g" oder "z" beginnt, jede Textaktion mit "i" oder "a" [z. B. "daw", um ein Wort unter dem Cursor zu löschen], Navigieren mit den Pfeiltasten im Einfügemodus , etc, werden Sie feststellen, dass diese in Vi nicht funktionieren.
Es gibt auch die Frage, was genau Sie verwendet haben, als Sie sagten, Sie hätten "Vi ausprobiert". Auf vielen Systemen führt "vi" Vim in einem Modus aus, in dem einige dieser Unterschiede zutreffen (Standard-Show-Modus, Pfeiltasten funktionieren nicht im Einfügemodus) und andere nicht (visueller Modus und g / z-Tasten funktionieren nicht) ), und einige Funktionen hängen von einer Kompilierungsoption ab, die manchmal in dem dafür verwendeten "winzigen Vim" deaktiviert ist (Textobjekte wie "aw", ein Wort, sind eines davon). Sie erhalten diese nicht, wenn Sie das echte Vi ausführen oder wenn "vi" ein anderer Klon mit weniger oder anderen Funktionen als Vim ist, wie z. B. nvi oder VILE.
Und auf der dunklen Seite, während "winziger Vim im Vi-Modus" offensichtlich keine Features hat, die ein voller Vim nicht hat, gibt es ein paar Features des echten originalen Vi, die Vim fehlt. Diese sind in dokumentiert
:help vi-differences
.quelle
Die meisten Vergleiche bieten mehr Funktionen für vim als für vi, aber es gibt eine Ausnahme. Es gab einen "offenen" Modus in vi und vim hat diesen Modus nicht wirklich.
Der offene Modus ist ein einzeiliger Modus, der früher für Terminals ohne elektronische Anzeigen (z. B. Teletypen, Briefdrucker usw.) und für Anzeigen verwendet wurde, bei denen der Cursor nur unten bleibt.
Ich weiß, dass es eine Dokumentation gibt, die besagt, dass vim den offenen Modus simuliert, aber meiner Erfahrung nach ist dies nicht der Fall, da ich gesehen habe, wie es mit vi mit eigenen Augen verwendet wurde, und ich habe noch nie gesehen, wie vim es tat. Es scheint, dass vim den
open
Befehl nur verwendet, um eine Datei im visuellen Modus zu öffnen und zu bearbeiten. Ich glaube, dass die offizielle Dokumentation von vim besagt, dass der offene Modus nicht unterstützt wird.quelle
^R
, gibt aber keine andere Hilfe.:open some/file
kehrt zurückopen: No such command from open/visual
.Q
um in den Ex-Modus zu gelangenopen
.z
um den Kontext der aktuellen Zeile anzuzeigen, sobald Sie sich im geöffneten Modus befinden.Q
Dann wieder rausvi
.Ich denke, es ist sehr schwierig, einen Vergleich anzustellen, da sich vi im Laufe der Zeit geändert hat.
Als ich am College war, habe ich Plain-Vanilla Vi auf einem dummen Terminal (und auch auf einem Terminal-Emulator auf einem Mac) verwendet, der über System V mit Großrechnern verbunden war. Das kann man nicht einmal mehr finden.
Aber ich bin mir nicht mal sicher, ob das wahr ist vi. Ungefähr zu dieser Zeit wurden viele Klone und Ports erstellt, da vi zu dieser Zeit nicht Open Source war. Und als Anbieter Klone erstellten, fügten sie Funktionen hinzu, die nicht in vi enthalten waren. Die Geschichte ist irgendwie verworren. Sie können es auf Wikipedia und anderswo lesen.
Wenn Sie also nicht bestimmte Anbieter / Hardware verwenden, verwenden Sie nicht vi, sondern so etwas wie vi.
Aber ich erinnere mich, dass vi (oder der von mir verwendete Klon) in seiner Benutzeroberfläche sehr minimalistisch ist (keine Farben, keine INSERT-Beschriftungen, keine mehrfachen Undos usw.) und dennoch leistungsstark in dem, was er tatsächlich erreichen könnte. Sehr praktisch.
quelle
Die Vim-FAQ enthält eine gut formatierte Liste: https://vimhelp.org/vim_faq.txt.html#faq-1.4
Auszug aus der FAQ:
quelle