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
:)