Vim - отличный текстовый редактор для систем Unix, но он известен тем, что его трудно выйти.
Напишите полную программу, которая будет выводить данные :q
для выхода из Vim. Затем он должен прочитать одну строку ввода, так как ему будет либо выдано приглашение bash, в этом случае выход завершился успешно, либо ошибка, в случае которой есть несохраненные изменения.
Приглашение bash будет таким:
E37@vimmachine: /var/override)
Пока ошибка будет такой:
E37: No write since last change (add ! to override)
После получения приглашения bash работа программы завершена, и она больше не должна выводить (кроме пробелов).
После получения ошибки ваша программа должна случайным образом (т. Е. Каждая возможность имеет ненулевую вероятность выбора) :q!
выйти :x
, чтобы сохранить без сохранения, или , чтобы сохранить и выйти.
Это код-гольф, поэтому побеждает меньшее количество байтов на каждом языке !
E37: No write since last change
? То есть, как алгоритм может отличить подсказку от сообщения об ошибке?
E37@vimmachine: /var/override)
:x
для выхода из vim. Когда-нибудь вы случайно нажмете на :X
случайные клавиши, когда запутаетесь. После того, как вы, наконец, :wq
вы никогда не увидите свой файл снова.
:x
была вещь! Я всегда использовал:wq
:)