Größte Unterschiede zwischen Vim und VI


25

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.


1
Sie verwenden offensichtlich nicht viele erweiterte Funktionen von vim. Blockauswahl, Suche nach einem Wort unter dem Cursor, Inkrementieren der Nummer unter dem Cursor, Hervorheben der Syntax usw.
Jim,

Antworten:


25

In vim gibt es tatsächlich einen Hilfebefehl, der Sie über die Unterschiede informiert: :help vi_diff

Von Vims Seite sind die größten:

unbegrenzt rückgängig machen

Sie können xxxx ausführen und jedes der vier Löschvorgänge rückgängig machen. Wann haben Sie das letzte Mal "jjjj" eingegeben und dann festgestellt, dass die Feststelltaste aktiviert ist? Sie haben versehentlich fünf Zeilen zusammengefügt, und Vi kann nur den letzten Befehl rückgängig machen. In Vim können Sie alle vier "J" -Befehle rückgängig machen und erhalten Ihren ursprünglichen Text zurück.

Portabilität

Vi ist nur unter Unix verfügbar. Vim funktioniert unter MS-Windows, Macintosh, Amiga, OS / 2, VMS, QNX und anderen Systemen. Und auch auf jedem Unix-System.

Satzstellung markieren

Vim kann so programmiert werden, dass Teile des Puffers je nach Art der zu bearbeitenden Datei in verschiedenen Farben oder Stilen hervorgehoben werden. Es gibt Hunderte von Syntaxhervorhebungsregelsätzen, die mit Vim gebündelt sind.

GUI

Vim funktioniert gut an einer Konsole, kann jedoch nativ in vielen GUIs ausgeführt werden, einschließlich X Windows, Mac OS und Microsoft Windows. Es verwendet native GUI-Widgets zum Scrollen, Teilen von Puffern und zum Menü. Es kann auch mit der Zwischenablage sprechen.


4
Einige weitere Unterschiede werden in der FAQ erwähnt
Christian Brabandt

Laut Readme werden einige dieser Betriebssysteme nicht mehr unterstützt.
Rolf

7

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.


2
Ich würde stark wetten, dass OP tatsächlich ein "winziges Vim" vi hat.
Kevin

2

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 openBefehl 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.


Ich habe ex-vi.sourceforge.net installiert, das ist ein Port des ursprünglichen Vi. Wie starte ich diesen offenen Modus? Die Manpage erwähnt dies ^R, gibt aber keine andere Hilfe. :open some/filekehrt zurück open: No such command from open/visual.
muru

@muru, Qum in den Ex-Modus zu gelangen open. zum den Kontext der aktuellen Zeile anzuzeigen, sobald Sie sich im geöffneten Modus befinden. QDann wieder raus vi.
Antony

0

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.


0

Die Vim-FAQ enthält eine gut formatierte Liste: https://vimhelp.org/vim_faq.txt.html#faq-1.4

Auszug aus der FAQ:

  • Mehrstufiges Rückgängigmachen
  • Registerkarten, mehrere Fenster und Puffer
  • Flexibler Einfügemodus (kann Pfeiltasten im Einfügemodus verwenden)
  • Makros
  • Visueller Modus (visuelle Auswahl von Textabschnitten)
  • Blockieren von Operatoren
  • Online-Hilfesystem
  • Befehlszeilenbearbeitung und Verlauf
  • Vervollständigung der Befehlszeile (Vervollständigung der Registerkarte)
  • Horizontales Scrollen (lange Linien)
  • Verbesserungen bei Unicode und Internationalisierung.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.