Gibt es Fälle, in denen vi die einzige Option ist?

22

Gibt es Szenarien, in denen vidie einzige Möglichkeit besteht, eine Datei in einer Ubuntu-Umgebung zu erstellen, zu bearbeiten oder zu ändern?

Meine Frage ist im Grunde, ob es einen solchen Fall gibt, zu dem ich gezwungen wäre, ihn zu verwenden, vida dies die einzige Option ist, die in einem bestimmten Fall im Ubuntu-Ökosystem zur Verfügung steht.

Könnte ein Fall vor , wenn ich irgendwie nicht den Zugang zu anderen Optionen haben möchte nano, picooder einfach nur die Informationen mit Tool wie das Senden cat, sed, teeund mehr?

Ich würde annehmen, dass dies eher eine Server- oder Cloud-Seite ist, da es auf dem Desktop viel mehr Optionen gibt, aber von jedem, der das Terminal viel benutzt, frage ich:

Gibt es so einen Fall?

Luis Alvarado
quelle
8
@Tim Kann eigentlich visudojeden Editor benutzen. Da die Standardkonfiguration von Ubuntu die Umgebungsvariablen EDITORund VISUALberücksichtigt, können Sie sudo env VISUAL=emacs visudofür Emacs oder sogar gksudo env VISUAL=gedit visudofür einen grafischen Editor wie Gedit ausgeführt werden. ( sudo -Hoder sudo -ikann anstelle von gksudo. verwendet werden) Ich schlage diese envMethode vor, da VISUAL=emacs sudo visudosie nicht funktioniert (den sudogrößten Teil der Umgebung zurücksetzt) ​​und sudo -EH möglicherweise nicht empfohlen wird.
Eliah Kagan
3
vi ist die einzige Option ... wenn vi der einzige Editor ist, den Sie kennen, und Sie keine Zeit damit verbringen möchten, einen anderen zu installieren. vi ist die beste Option, wenn vi der Editor ist, den Sie am besten kennen / mögen, und Sie keine Zeit damit verbringen möchten, einen zu installieren, den Sie mehr mögen. Es gibt NIEMALS einen Fall, in dem nur ein Werkzeug ein Problem lösen kann. Es kann Zeiten geben, in denen die Auswahl eingeschränkt ist. Und einige Leute mögen tatsächlich vi. (Nicht ich. Ich bin ein Emacs-Fanatiker. Obwohl ich viele Redakteure tolerieren kann.)
Keshlam
3
cat? sed? "Ja wirklich?" viIst wirklich nicht so kompliziert, und wenn Sie wirklich nicht die Mühe haben, es zu lernen, müssen Sie sich nur zwei Modi merken (Normal- und Einfügemodus). Sie bewegen den Cursor mit den Pfeilen (oder HJKL, falls nicht verfügbar) und drücken "i", um die Bearbeitung zu starten (Einfügemodus). Wenn Sie fertig sind, drücken Sie "Esc", um zum normalen Modus zurückzukehren. Geben Sie ": wq" ein, um zu speichern und zu beenden (Write + Quit).
Sleblanc
2
Saug es einfach auf und lerne vi :) Es ist nicht so schwer, wie es zuerst erscheint, und sobald du es weißt, verschwendest du keine Zeit mehr damit, nach anderen Editoren auf einem neuen System zu suchen, das du verwendest.
James Ryan

Antworten:

32

In der Ubuntu- Ökosystems glaube ich nicht, dass es diesen Fall überhaupt geben kann , da vies sich zumindest um einen winzigen Fall handeln würde, der bereits ein "real vim" ist, weit entfernt von "real vi".

Im Zusammenhang mit ressourcenbeschränkten eingebetteten Systemen, die normalerweise nicht Ubuntu sind, kann es sein, vidass sich herausstellt, dass es sich um eine Verknüpfung zu handelt busybox. Und kein Platz mehr. Dann viist die einzige Option.

Abgesehen davon denke ich, dass Situationen, in denen vidie einzige Option überhaupt nicht häufig ist, auch außerhalb der Linux-Welt .

Aber es kann leicht Situationen, in denen viist die einzige Option , die Sie für planen können , die einzige Möglichkeit , dass certaily in einer zukünftigen Situation existieren wird - was im Inneren eines Kunden über kühltes Serverraum, wahrscheinlich passieren wird.

Stellen Sie sich vor, Sie werden von einem Kunden angerufen:

Kunde: Ich muss diese Konfiguration reparieren! Jetzt!! Ich weiß nicht wie, aber ich kann Ihnen sagen, wo sich die Konfigurationsdatei befindet. Können Sie mir helfen!?!

Sie: Ok, auf was für einem System läuft das?

Kunde: Oh, es ist auf dem Server foo, ahh ... es läuft ... kann mich nicht erinnern, irgendetwas mit "ix" am Ende oder Mayeb mit "ux" ...

Kein Problem, du weißt schon, dass es welche geben wird vi!

Volker Siegel
quelle
1
Ich habe persönlich an einer Reihe eingebetteter Systeme gearbeitet, die nur vi als Texteditor enthielten. Ich glaube, dass buildroot und yocto es als einzigen Editor verwenden, wenn minimale Konfigurationsoptionen verwendet werden. Zugegeben, dies ist kein Ubuntu-Problem, aber wenn Sie ein Embedded-Entwickler sind, kann dies ein echtes Problem sein. Sie können jedoch wie gesagt immer Pipe-basierte Werkzeuge wie sed, sort, grep und dergleichen verwenden, was jedoch sehr schmerzhaft sein kann.
Vality
Der Busybox- Fall ist in der Tat ein guter. Was daran nervt, ist, dass ich nicht glaube, dass es sogar ein volles vi ist (zumindest ist es noch kein Jahrzehnt her und ich hoffe, dass sie es nicht aufgebläht haben, auch wenn es nervt).
Hyde
1
busybox viist 4k Zeilen:; curl -s https://gitorious.org/busybox/busybox/raw/1c7a58dfb82ea04c525e0c19f94f2d800dee99e3:editors/vi.c | wc)
Volker Siegel
17

Vi ist niemals die einzige Option; Sie können edstattdessen immer verwenden .

Übelsuppe
quelle
8
In Arch Linux zum Beispiel ist eddas nicht Teil des base.
Muru
@muru FWIW vimist es auch nicht.
Sparhawk
4
@ Sparhawk viist.
Muru
@muru Ah ja, natürlich. Ich habe mich verwirrt.
Sparhawk
edist nur ein Teil der standard^Installation. Wenn Sie eine minimalInstallation durchführen, edist dies nicht enthalten.
Oli
13

Nun, es gibt einen Fall, in dem Sie den viEditor benötigen , nehmen wir an:

  • Es gibt keine grafische Oberfläche
  • Du bist auf einem seltsamen unbekannten *nixSystem
  • Ihr Terminal sieht folgendermaßen aus:

Bildbeschreibung hier eingeben

  • Du hast genug von Leuten wie diesen:

Bildbeschreibung hier eingeben

Wie Sie sehen, gibt es keinen Ziffernblock . Mit dem alten vi(und ich meine das ursprüngliche traditionellevi , nicht vim, vim.tinyoder vim.basic) eine Datei mit dieser Tastatur bearbeiten können. Ohne Pfeiltasten ? Ja, wenn Sie im Befehlsmodus sind bewegen Sie durch die Datei mit h, j, kund l, wie ein Profi. hwar links, jwar unten, kwar oben und lwar richtig.

Chaos
quelle
5
Ich denke, diese Antwort ist eigentlich gar nicht so schlecht (schreibmaschinenähnliche Tastaturen sind nicht sehr unwahrscheinlich), aber das heißt eigentlich nicht, dass Sie sie vibesonders brauchen . Alle älteren Texteditoren verfügen über "Backup" -Tastenkombinationen, mit videnen Sie ohne Pfeiltasten usw. arbeiten können. Ich bin jedoch der Meinung, dass dies der einzige Editor ist, in dem Sie die Pfeiltasten nicht verpassen würden.
linksum den
Unangebracht: Ich verstehe nicht, warum Sie für einen Texteditor einen Ziffernblock benötigen , und Pfeiltasten sind in Vim sowieso nutzlos. : P
Türknauf
1
Hey, rabattiere nicht gut alt ed! Keine Notwendigkeit für diese "visuellen" Spielereien auf einem solchen System! Versuchen Sie einfach, vim auf dem Papier-Terminal zu verwenden und sehen Sie, wie Sie eddamit umgehen.
Hyde
Wie wechselt man mit dieser Tastatur in den Befehlsmodus (ich sehe kein Entrinnen; gab es dafür eine andere Tastenkombination?)
Foon
@Foon Es gibt eine Escape-Taste =) Hier sollte normalerweise die Registerkarte sein. Links von der Q- Taste.
Chaos
6

Tatsache ist , dass in vielen Distributionen Editoren wie nanound picoist einfach nicht Standard , während andere Pakete, nämlich vim-tinysind. Siehe hier für die Paketliste von Ubuntu-Minimal, vim-tinyist der einzige Editor . Nach dieser Antwort scheint dies auch für den Ubuntu-Server der Fall zu sein. Ich weiß, dass dies auch für Debian und Fedora der Fall ist.

Davon abgesehen, wenn Sie nanoauf Ihrem System haben, habe ich noch keinen Fall, in dem Sie vistattdessen verwenden müssten, aber spielen Sie die Antwort von @ Volker aus, wenn Sie für einen Kunden arbeiten und keinen haben Root-Zugriff? apt-get install nanowird dir nicht viel nützen (wenn es überhaupt Zugang zum Internet von außen hat!).

Mitch
quelle
4

Es gibt eine Reihe von Fällen , in denen vi(und damit meine ich natürlich bedeuten , vim.tinydenn das ist , was wir versenden) , könnte das einzige interaktive Editor. Wenn wir Schmetterlinge und kosmische Strahlung ignorieren, scheinen dies die wahrscheinlichsten Fälle zu sein, in denen dies passieren könnte:

  • Sie verwenden nur das ubuntu-minimalBasis-Metapaket. Dies hängt vim-tiny aber von keinen anderen Editoren ab. Ich kann derzeit keine Möglichkeit finden, Ubuntu ohne den standard^Task zu installieren, aber Sie können ihn nach der Installation mit den folgenden Schritten entfernen:

    sudo apt-get remove $(apt-cache show standard^ | awk '/Package: / {print $2}')
    

    Ich habe persönliche Erfahrungen mit der Übergabe eines Systemabbilds, ohne dass die standard^Aufgabe installiert wurde. Wenn ich keinen Netzwerkzugang gehabt vihätte, wäre dies meine einzige Option gewesen.

  • Chrooting in eine Umgebung, die nur vidurch abgebildet

  • Manuelles Nuken aller anderen Editoren (und Deaktivieren der Mittel zu deren Neuinstallation)

  • Manuelles Unterbrechen der Shell, um bekannte Editoren zu stoppen, außer visie werden gestartet.

Eine wirklich minimale Installation ist der wahrscheinlichste Grund, aber diese sind heutzutage eher selten. Einige VPS- und Cloud-Hosting-Unternehmen verwenden sie (um Speicherplatz zu sparen), aber ich würde vorschlagen, dass sie definitiv nicht die Norm sind.

Oli
quelle
Eine tolle Antwort wie immer. Ich finde es sehr kenntnisreich.
Luis Alvarado
2

In Fällen, in denen Sie Emacs nicht installieren können, oder in Fällen, in denen Sie eine Konfigurationsdatei ändern müssen, um Emacs installieren zu können. :-p

Craig
quelle
Oder in Fällen, in denen Sie einen überlegenen Editor verwenden möchten, der besser ist als Emacs. ( Stichwort Flammenkrieg ): P
Türknauf
3
Sicherlich, wenn Sie Ubuntu verwenden dann Sie bereits haben ein Betriebssystem, so Emacs überflüssig wäre: v
evilsoup
Hey, schönes Comback. :-p
Craig
2

Viele (die meisten?) Busy-Box-Installationen haben nur vi .

Es ist nicht Ubuntu-spezifisch, aber es gilt für viele eingebettete Geräte.

Falscher Name
quelle
2

Es gibt immer Katze, Kopf, Schwanz ... also bin ich mir nicht sicher, ob es ein System gibt, bei dem es keine Alternative gibt, aber es ist möglich, Systeme zu finden, bei denen es keine bessere Alternative gibt, selbst wenn Sie Emacs bevorzugen.

Mein Beispiel war ein System, das ich einmal verwaltet habe, das entweder so langsam war (oder die Zeile war langsam und verlustbehaftet), dass beim Navigieren mit den Cursortasten oft plötzlich Müll in die bearbeitete Datei eingefügt und injiziert und HJKL für die Bewegung verwendet wurde war die einzige zuverlässige Option.

Edheldil
quelle
1
Und natürlich die guten alten Schmetterlinge !
Leftaroundabout
2

Hier ist der Fall, in dem vim die einzige Option im Ubuntu-Ökosystem ist: Es Ubuntu Snappywird kein anderer Texteditor als mitgeliefert vim-tiny. Vielleicht wird es in Zukunft eine geben, aber nicht ab 2015-16. Wenn Sie Ubuntu Snappy über eine serielle Konsole oder ssh verwenden, sollten Sie besser darauf vorbereitet sein vim.

Sergiy Kolodyazhnyy
quelle
0

Ich geriet einmal in eine Situation, in der nur Vi´s Linemode funktionierte. Das hat etwas damit zu tun, dass man die Terminaldefinitionen wirklich durcheinander gebracht hat. Grundsätzlich funktionierten nur vi im Linemode (dies verhält sich wie normales vi, wenn Sie so tun, als hätten Sie ein 1-Zeilen-Terminal), ex und ed, da die einzige Terminaldefinition "dumm" war.

Joshua
quelle