Größte Unterschiede zwischen Vim und vi

Heute habe ich beschlossen, vi anstelle von Vim zu versuchen. Ich wollte sehen, wie unterschiedlich es ist.

Ich habe überhaupt keine großen Unterschiede bemerkt. Das größte, was mir aufgefallen ist, war, wie vi -- INSERT -- nicht gesagt hat Als ich in den Einfügemodus ging, gab es einige geringfügige Unterschiede in der Benutzeroberfläche.

Dies ließ mich fragen, was die größten Unterschiede zwischen vi und Vim sind.

Kommentare

  • Sie verwenden offensichtlich nicht ‚ viele erweiterte Funktionen von vim. Blockauswahl, Suche nach Wort unter dem Cursor, Inkrementierung der Nummer unter dem Cursor, Hervorhebung der Syntax usw.
  • Zugehöriger Beitrag – Was ist der Unterschied zwischen Vi und Vim?
  • Es gibt einige offensichtliche Vorteile, wie die erweiterte Schlüsselunterstützung. Pfeiltasten funktionieren im Gegensatz zu hjkl.

Antwort

In Vim gibt es tatsächlich einen Hilfebefehl, der Sie darüber informiert zu den Unterschieden: :help vi_diff (beachten Sie den Unterstrich: :help vi_diff)

Von Vims Website sind die größten:

unbegrenzt rückgängig machen

Sie können xxxx ausführen und jede der vier Löschungen rückgängig machen Das letzte Mal, als Sie “ jjjj “ eingegeben und dann herausgefunden haben, dass die Feststelltaste aktiviert war? Sie haben versehentlich fünf Zeilen miteinander verbunden, und Vi kann Machen Sie nur den letzten Befehl rückgängig. In Vim können Sie alle vier “ J “ -Befehle rückgängig machen und Ihren Originaltext zurückerhalten.

Portabilität

Vi ist nur unter Unix verfügbar. Vim funktioniert unter MS-Windows, Maci ntosh, Amiga, OS / 2, VMS, QNX und andere Systeme. Und auch auf jedem Unix-System.

Syntax, die

Vim hervorhebt programmiert, um Teile des Puffers je nach zu bearbeitendem Dateityp in verschiedenen Farben oder Stilen hervorzuheben. In Vim sind Hunderte von Regelsätzen zur Hervorhebung der Syntax enthalten.

GUI

Vim funktioniert gut auf 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 Menüs. Es kann auch mit der Zwischenablage kommunizieren.

Kommentare

  • Einige weitere Unterschiede werden in der erwähnt faq
  • Gemäß der Readme sind einige dieser Betriebssysteme wird nicht mehr unterstützt.

Antwort

Vim verfügt über viele Funktionen, die Vi nicht bietet, selbst Funktionen, die nicht offensichtlich sind „Erweiterte“ Funktionen.

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 verwendet werden zu Vim und , wenn Ihre „Reflexe“ Funktionen wie das Hervorheben des visuellen Modus, jede Tastenaktion, die mit „g“ oder „z“ beginnt, jede Textaktion mit „i“ oder „a“ [z „daw“, um ein Wort unter dem Cursor zu löschen], beim Navigieren mit den Pfeiltasten im Einfügemodus usw. werden Sie feststellen, dass diese in Vi nicht funktionieren.

Es stellt sich auch die Frage, was genau Sie haben verwendet, als Sie sagten, Sie hätten „Vi ausprobiert“. Auf vielen Systemen führt „vi“ tatsächlich Vim in einem Modus aus, in dem einige dieser Unterschiede zutreffen (Standard-Showmodus, wie Sie beobachtet haben, Pfeiltasten funktionieren nicht im Einfügemodus) und andere nicht (visueller Modus und G / Z-Tasten funktionieren) ), und einige Funktionen hängen von einer Option zur Kompilierungszeit ab, die manchmal in dem dafür verwendeten „winzigen Vim“ deaktiviert ist (Textobjekte wie „aw“ ein Wort sind eines davon). Sie werden nicht erhalten Diese, 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 im Dunkeln Während „winziges Vim im Vi-Modus“ offensichtlich keine Funktionen hat, die ein vollständiges Vim nicht bietet, gibt es einige Funktionen des echten Original-Vi, die Vim fehlen. Diese sind in :help vi-differences.

Kommentare

  • Ich ‚ würde stark darauf wetten, dass OP tatsächlich ein “ winziges vim “ vi.
  • Sie sagen, dass auf vielen Systemen die v i Befehl läuft tatsächlich vim. Wie finde ich heraus, ob ich wirklich vi oder vim verwende?
  • @firstpostcommenter Nun, ‚ sieht im Grunde immer noch wie vim aus – das ~ auf dem Die linke Seite des Bildschirms hat eine blaue Farbe, und der Versionsansage-Text wird möglicherweise weiterhin in der Mitte des Bildschirms angezeigt, wenn Sie ihn selbst starten, ohne eine Datei anzugeben.Wenn Sie ‚ sehr besorgt darüber sind, welchen Editor Sie ausführen, können stattdessen auch andere vi-Klone installiert werden, und die echte “ vi “ ist in Linux / bsd-Distributionen sehr selten.

Antwort

Die meisten Vergleiche bieten Vim mehr Funktionen als vi, aber es gibt eine Ausnahme. In vi gab es einen „offenen“ Modus, und Vim hat diesen Modus nicht wirklich.

Der offene Modus ist ein einzeiliger Modus, der früher mit Terminals ohne Elektronik verwendet wurde Anzeigen, dh Teletypen, Briefdrucker und dergleichen, und auch Anzeigen, bei denen der Cursor nur unten bleibt.

Ich weiß, dass es eine Dokumentation gibt, die besagt, dass Vim den offenen Modus simuliert, aber meine Erfahrung ist dies Das tut es nicht. Denn ich habe gesehen, wie es mit vi mit meinen eigenen Augen verwendet wurde, und ich habe Vim noch nie gesehen. Es scheint, dass Vim nur den Befehl open verwendet, um es einfach zu öffnen und glaube, dass die offizielle Dokumentation von Vim besagt, dass der offene Modus nicht unterstützt wird.

Kommentare

  • I. habe ex-vi.sourceforge.net installiert, was ein Port des ursprünglichen Vi ist. Wie starte ich diesen offenen Modus? Die Manpage erwähnt es, wenn es um ^R geht, gibt aber keine andere Hilfe. :open some/file gibt open: No such command from open/visual zurück.
  • @muru Q, um ex einzugeben Modus, dann open. z, um den Kontext der aktuellen Zeile anzuzeigen, sobald Sie ‚ im geöffneten Modus sind. Zum Zurücksetzen Q und dann vi.

Antwort

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

Auszug aus den FAQ:

  • Mehrstufiges Rückgängigmachen
  • Registerkarten, mehrere Fenster und Puffer
  • Flexibler Einfügemodus (kann verwendet werden Pfeiltasten im Einfügemodus)
  • Makros
  • Visueller Modus (Textabschnitte visuell auswählen)
  • Blockoperatoren
  • Online-Hilfesystem
  • Befehlszeilenbearbeitung und Verlauf
  • Befehlszeilenvervollständigung (Tab-Vervollständigung)
  • Horizontales Scrollen (lange Zeilen)
  • Verbesserungen bei Unicode und Internationalisierung .

Antwort

Ich denke, es ist sehr schwierig, den Vergleich durchzuführen, da sich vi geändert hat passierte im Laufe der Zeit.

Als ich auf dem College war, habe ich Plain-Vanilla Vi auf einem dummen Terminal (und auch auf einem Terminal-Emulator auf einem Mac) verwendet, das über System V mit Mainframes verbunden wurde mehr.

Aber ich bin mir nicht mal sicher, ob das wahr war vi. Ungefähr zu dieser Zeit wurden viele Klone und Ports erstellt, da vi zu diesem Zeitpunkt 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 bestimmte Anbieter / Hardware nicht verwendet haben, haben Sie nicht vi verwendet, sondern etwas wie vi. P. >

Aber ich erinnere mich, dass vi (oder der von mir verwendete Klon) in seiner Benutzeroberfläche sehr minimalistisch war (keine Farben, keine INSERT-Beschriftungen, keine mehrfachen Rückgängigmachungen usw.) und dennoch mächtig in dem, was es tatsächlich erreichen konnte. Sehr praktisch.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.