Vim es un excelente editor de texto para sistemas Unix, pero es conocido por ser difícil de salir.
Escriba un programa completo que :qsalga para salir de Vim. Luego, debe leer una sola línea de entrada, ya que se le dará un mensaje bash, en cuyo caso la salida fue exitosa o un error, en cuyo caso hay cambios sin guardar.
El indicador de bash será este:
E37@vimmachine: /var/override)
Si bien el error será este:
E37: No write since last change (add ! to override)
Al recibir el indicador bash, el trabajo del programa está terminado y no debería dar más resultados (excepto los espacios en blanco).
Al recibir el error, su programa debe emitir aleatoriamente (es decir, cada posibilidad tiene una probabilidad distinta de cero de ser elegido) :q!, salir sin guardar, o :x, guardar y salir.
Este es el código de golf, por lo que gana menos bytes en cada idioma .
E37: No write since last change? Es decir, ¿cómo puede un algoritmo distinguir un mensaje de un mensaje de error?
E37@vimmachine: /var/override)
:xpara salir de vim. Algún día accidentalmente presionarás :Xteclas aleatorias cuando estés confundido. Después de que finalmente :wqnunca volverás a ver tu archivo.
:xera una cosa! Siempre he usado:wq:)