Vim ist ein großartiger Texteditor für Unix-Systeme, der jedoch bekanntermaßen schwer zu beenden ist.
Schreiben Sie ein vollständiges Programm, das ausgegeben wird :q
, um Vim zu beenden. Es sollte dann eine einzelne Eingabezeile lesen, da es dann entweder eine Bash-Eingabeaufforderung erhält, in welchem Fall der Exit erfolgreich war, oder einen Fehler, in welchem Fall ungespeicherte Änderungen vorliegen.
Die Bash-Eingabeaufforderung lautet:
E37@vimmachine: /var/override)
Während der Fehler wird dies sein:
E37: No write since last change (add ! to override)
Mit der Bash-Eingabeaufforderung ist die Arbeit des Programms abgeschlossen und es sollte keine Ausgabe mehr erfolgen (mit Ausnahme von Leerzeichen).
Nach Erhalt des Fehlers sollte Ihr Programm nach dem Zufallsprinzip (dh jede Möglichkeit hat eine Wahrscheinlichkeit ungleich Null, ausgewählt zu werden) ausgegeben werden :q!
, um den Vorgang ohne Speichern zu beenden oder :x
um den Vorgang zu speichern und zu beenden.
Dies ist Codegolf, so dass die wenigsten Bytes in jeder Sprache gewinnen!
E37: No write since last change
? Wie kann ein Algorithmus eine Eingabeaufforderung von einer Fehlermeldung unterscheiden?
E37@vimmachine: /var/override)
:x
, um vim zu beenden . Eines Tages werden Sie versehentlich :X
zufällige Tasten drücken, wenn Sie verwirrt sind. Nachdem Sie es endlich geschafft haben, werden :wq
Sie Ihre Datei nie wieder sehen.
:x
war eine Sache! Ich habe immer verwendet:wq
:)