Vim to świetny edytor tekstowy dla systemów uniksowych, ale notorycznie jest trudny do wyjścia.
Napisz pełny program, który wyświetli :q
wyjście z Vima. Następnie powinien odczytać pojedynczy wiersz danych wejściowych, ponieważ albo zostanie wyświetlony monit bash, w którym to przypadku wyjście zakończyło się powodzeniem, albo błąd, w którym to przypadku nastąpią niezapisane zmiany.
Bash będzie następujący:
E37@vimmachine: /var/override)
Podczas gdy błąd będzie następujący:
E37: No write since last change (add ! to override)
Po otrzymaniu monitu bash praca programu jest zakończona i nie powinna dawać więcej wyników (z wyjątkiem białych znaków).
Po otrzymaniu błędu, twój program powinien losowo (tj. Każda możliwość ma niezerowe prawdopodobieństwo wybrania) wyjście :q!
, aby wyjść bez zapisywania lub :x
, aby zapisać i wyjść.
To jest golf golfowy, więc wygrywa najmniej bajtów w każdym języku !
E37: No write since last change
? To znaczy, w jaki sposób algorytm może odróżnić monit od komunikatu o błędzie?
E37@vimmachine: /var/override)
:x
do wyjścia z vima. Pewnego dnia, :X
gdy się zdezorientujesz, przypadkowo uderzysz w losowe klawisze. Po tym, jak w końcu :wq
już nigdy nie zobaczysz swojego pliku.
:x
była rzecz! Zawsze używałem:wq
:)