VimはUNIXシステム用の優れたテキストエディターですが、終了するのが難しいことで有名です。
:q
Vimを終了するために出力する完全なプログラムを作成します。その後、bashプロンプト(終了の場合)またはエラー(未保存の変更がある場合)が表示されるため、1行の入力を読み取る必要があります。
bashプロンプトは次のようになります。
E37@vimmachine: /var/override)
エラーはこれになりますが:
E37: No write since last change (add ! to override)
bashプロンプトが与えられると、プログラムの作業は完了し、それ以上の出力は行われないはずです(空白を除く)。
エラーが発生すると、プログラムは、出力:q!
(保存せずに終了する、または保存して終了する)をランダムに(つまり、それぞれの可能性が0以外の確率で選択される)出力:x
する必要があります。
これはコードゴルフなので、各言語で最少のバイトが勝ちます!
E37: No write since last change
どうですか?つまり、アルゴリズムはプロンプトとエラーメッセージをどのように区別できますか?
E37@vimmachine: /var/override)
:x
vimを終了するために決して使用しないでください。いつか、:X
混乱したときに偶然ランダムなキーを押してしまいます。ようやく:wq
ファイルが表示されることはありません。
:x
が何かだとは知りませんでした!私はいつも:wq
:)