Ich kenne mich mit * NIX-Texteditoren (die derzeit von nano
nach migrieren) aus vim
und habe nach einigem Hin und Her in Unix & Linux SE festgestellt, dass vi
bei einer ganzen Reihe von Fragen anstelle von 'vim' verwendet wird. Ich weiß, dass 'vim' für 'Vi IMproved' steht und frage mich deshalb, warum jemand lieber vi anstelle von vim verwenden möchte. Hat vi einen signifikanten Vorteil gegenüber vim?
Edit: Ich denke, dass meine Frage falsch interpretiert wird. Ich weiß, dass vim zum größten Teil wesentlich leistungsfähiger und funktionsreicher ist als vi. Was ich wissen möchte, ist, ob es mögliche Fälle gibt, in denen vi einen Vorteil gegenüber vim hat, z. B. weniger Speicherbedarf, Verbreitung auf * nix-Systemen usw.
vi
ist, dass es auf jedem POSIX-kompatiblen System zu erwarten ist.vi
und nichtvim
.. Ubuntu ist eine der benutzerfreundlichsten Distribution btw ;-)vim
.vi
ist nur ein symbolischer Link, auf denvim
in der Standardinstallation möglicherweise verwiesen wird.vi
die POSIX-Spezifikationen fürvi
. Auf diese Weise haben Sie sowohl portables Wissen als auch Kenntnisse über Vim-Erweiterungen.Antworten:
vi
ist (auch) ein POSIX-Standardeditor . Es gibt viele Implementierungen und diesevim
sind zumindest unter Linux wahrscheinlich am beliebtesten.Während viele traditionelle Unix-kompatible Betriebssysteme
vi
Implementierungen bieten , die dem Standard sehr nahe kommen, wurdenvim
viele zusätzliche Funktionen hinzugefügt, die es zu einem zweischneidigen Schwert machen.Natürlich wurden diese Erweiterungen in der Regel entwickelt, um den Bearbeitungsprozess zu vereinfachen und nützliche Features und Funktionen bereitzustellen. Wenn Sie jedoch an einige von ihnen gewöhnt sind (nicht an kosmetische wie Syntaxfarben, sondern an solche, die das Verhalten des Editors verändern), können Sie leicht vergessen, dass sie spezifisch sind. Die Verwendung einer anderen Implementierung, einschließlich der auf dem ursprünglichen BSD-Code basierenden, kann sehr frustrierend sein. Das Gegenteil ist auch der Fall.
Dies ähnelt dem Problem, das bei Skripten mit Nicht-POSIX-Bashismen auftritt, wenn orthodoxere Shell-Implementierungen wie
dash
oder verwendet werdenksh
.quelle
Kein vi hat keinen nennenswerten Vorteil gegenüber vim, sondern ist umgekehrt. Vim hat mehr Vorteile als Vi. Sie könnten interessiert sein an: Warum, oh WARUM, diese #? @! Nutheads verwenden vi?
Lesen Sie auch: Lohnt es sich, VIM zu lernen?
quelle
Nachdem ich einen großen Teil meines Lebens (ohne Kindheit) damit verbracht hatte, bequem mit Vim zu arbeiten, verbrachte ich ungefähr einen Monat damit, nur vi zu verwenden. Dabei wurde mir klar, dass ich für alle meine Textänderungsbedürfnisse auf Vim angewiesen war. Vor meiner Reise mit vi habe ich immer dann, wenn ich Text ersetzen oder eine ähnliche Operation in einer großen Gruppe von Dateien ausführen musste, die Dateien in Vim geöffnet und einen
:bufdo
Befehl ausgeführt, und wenn ich einige Dateien einrücken oder formatieren musste, Ich würde sie in Vim öffnen und Vims=
undgw
Befehle verwenden. Ich war Vim-abhängig. Nachdem mir klar wurde, dass vi diese Befehle nicht hatte, musste ich mit Bulk-Text-Transformationen arbeitensed
und lernte viel über andere Programme wieawk
undindent
. Obwohl ich am Ende wieder zu Vim zurückgekehrt bin, war das Wissen, das ich durch die Verwendung eines weniger gut ausgestatteten Editors gewonnen habe, umfangreich und hat sich als äußerst nützlich erwiesen. Neben dem Erlernen von Werkzeugen außerhalb eines Texteditors lernte ich auch vi besser kennen. Wenn ich an einem neuen System oder einem Server ohne Vim arbeite, fühle ich mich mit vi viel wohler als vor meinem einmonatigen Ausflug.Außerdem habe ich im letzten Monat Linux auf einem billigen WM8650-Tablet installiert und festgestellt, dass es einen merklichen Leistungsunterschied zwischen Vim und vi gibt. Ich verwende daher normalerweise vi auf dem Tablet.
quelle
-i
Schalter auf beiden ist eine GNU-Erweiterung.) Aber Sie können sie portabel mit etwas wiefor f in *; do printf '%s\n' '%!sed -e '\''some sed command'\' x | ex "$f"; done
Ich würde es schwer haben, ohne vim zu leben, aber ich kann vi nicht ausstehen . Wenn Sie jedoch das erstere lernen, werden Sie zumindest eine Vorstellung davon haben, wie Sie mit dem späteren umgehen sollen, wenn das alles ist, was verfügbar ist.
Die vim-Oberfläche ist eigentlich ziemlich nah an vi. Wenn ich mit vim an einem System arbeite, füge ich als Erstes Folgendes hinzu
~/.vimrc
:Es gibt eine Menge anderer Dinge, die ich bevorzuge - Nowrap und Nummerierung, usw. - aber egal. "syntax enable" aktiviert nur die grundlegende Syntaxhervorhebung (etwas kräftiger:
filetype plugin on
ist auch von grundlegender Bedeutung); "nocp" deaktiviert die vi-Kompatibilität und es ist dies, das beginnt, vim von ye olde vi zu unterscheiden (z. B. ermöglicht esshowmode
, dass die gesamte Erfahrung etwas menschlicher wird, da Sie jetzt eine Ahnung haben, ob Sie das Kommando haben oder ~ INSERT ~ Modus). "wildmenu" gibt Ihnen nur ein horizontales Abschlussmenü, wenn Sie einige Dinge tun, was das Leben auch einfacher macht.Die Textbearbeitungsfunktionen von vim sind unübertroffen - abgesehen von Emacs habe ich noch nie eine Software gesehen oder gehört, die in die Nähe kommt. Sie sind nicht leicht zu erlernen, aber sobald Sie sie kennen, sind sie viel schneller als Mausmenüs und viel dynamischer als die einfachen Tastenmakroalternativen in auf Mausmenüs basierenden Benutzeroberflächen. Zum Programmieren benutze ich manchmal vim neben einer IDE wie Eclipse, aber ich mache die meiste Arbeit in vim.
Wenn Sie diesen Weg einschlagen, schauen Sie sich die Plugins für die automatische Vervollständigung und die Tagliste an. Und hüte dich vor der dunklen Seite.
quelle
set mouse=a
.Der Vorteil ist, dass vi normalerweise unter Enterprise UNIX wie AIX oder Solaris vorinstalliert ist. Außerdem ist vim auf Installationsmedien nicht verfügbar.
quelle
Mir ist aufgefallen, dass ich nur dann eine Auswahl
Vi
vornehme,VIM
wenn ich ein Textdokument oder eine Konfigurationsdatei kopiere und einfüge, für die ich dencat
Befehl verwendet habe. Dies liegt daran , wenn ich versuche,ctrl-c
und dannctrl-v
in dasVIM
geöffnete Dokument, zwingt sie alle Zeilen einen Kommentar infront von ihnen zu haben. Also , wenn ichVi
aufctrl-v
oderpaste
in dasVi
geöffnete Dokument, es fügt genau das, was ich von kopiert. Ansonsten nutze ich denVIM
ganzen Tag.Genießen!
quelle
:set paste
Wie bereits in früheren Antworten erwähnt, wird vi mit nahezu jedem UNIX-System ausgeliefert.
Ich wollte nur ein Beispiel hinzufügen. Arch Linux ist eine besonders beliebte und leichtgewichtige Distribution, die weder vom Installer noch von der Basis-Distribution standardmäßig mit vim ausgeliefert wird, jedoch beide mit vi.
Dies ist per se kein Vorteil für vi , da Sie vim einfach manuell installieren können und bei der Installation, für die ein Texteditor erforderlich ist, nur wenig zu tun ist. Aber den Unterschied zu verstehen und dass vi allgegenwärtiger und leichter ist als vim, bringt ihm einige Nischenvorteile.
Nur um umfassend zu sein, hat noch niemand explizit darauf hingewiesen, dass vi ein direkter Vorläufer von vim ist. Vim sollte genau das sein, was vi war, und mehr.
Auf sehr direkte Weise ist vim vi überlegen, weil es so konzipiert wurde .
quelle
Der einzige Grund, vi über vim zu verwenden, ist, wenn Sie keine andere Wahl haben.
Es gibt viele, viele Gründe, warum vim für "vi enhanced" steht!
Ausgeliehen von einem ähnlichen Beitrag, auf den ich geantwortet habe: -
quelle
Dies ist ein Auszug aus Vim Koans :
Master Wq und der Unix-Master
Ein alter Unix-Meister kam zu Meister Wq. „Ich bin besorgt, Wq. Du lehrst den Weg von Vim. vi ist heilig, Vim jedoch nicht; sein Code breitet sich aus, seine Merkmale drängen sich in das Gedächtnis; Seine Binärdateien sind riesig, sein Verhalten inkonsistent. Dies ist nicht der Weg von Unix. Ich fürchte, Sie führen Ihre Schüler in die Irre. Was kann getan werden? "
Meister Wq nickte. "Du hast recht", sagte er. „Vim ist kaputt. Lass es uns reparieren. Sollen wir anfangen?"
Der alte Unix-Meister stimmte zu und öffnete eine Shell. Er tippte:
Er fing an zu programmieren. Master Wq schaute eine Weile zu und fragte ihn dann: „Welche Implementierung von vi verwenden Sie? Nvi? Vim? Elvis? "
"Ich weiß nicht", sagte der Unix-Meister. "Es ist egal."
Meister Wq nickte. Der Unix-Meister saß einen Moment fassungslos da und schloss sein Dokument ungespeichert.
quelle