エスケープコードを含むターミナル内のアニメーション

エスケープコードを含むターミナル内のアニメーション

入力ファイル:Brainfuckのハノイタワー出力(一部のコードポイントはブラウザで正しくレンダリングされない場合があります。)このファイルはデフォルトで脱出コード(より具体的に^[[m;nH)行を書き直します。

コマンドを実行します(実行する必要がsudo apt-get install pvあるか、それに対応するコマンドが必要な場合があります)。

cat hanoi.b.out |  pv -l -L 10 -q

次の出力を提供します

ここに画像の説明を入力してください。

ウィンドウサイズが十分に大きい場合。

それ以外の場合、出力は次のようになります。

ここに画像の説明を入力してください。

画像が「下にスクロール」し始めるポイントです。

当然、これは、ウィンドウサイズが小さすぎると、なぜこのような(誤った)動作が発生するのかという質問を提起する。

ベストアンサー1

すべての出力がカーソルアドレスとして指定されるわけではありません。そのうちのいくつかは改行文字で、カーソルが一番下の行にあるときに端末が上にスクロールされます。これは以下を使用して表示されるレンダリングです。unmap出力開始:検索\n(改行は「改行」です。)

\E[H
\E[2J
\E[2;27HTowers of Hanoi in Brainf*ck
\E[3;15HWritten by Clifford Wolf <http://www.clifford.at/bfcpu/>
\E[14;43H-----------------------------------
\E[24;23H-----------------------------------
\E[14;3H-----------------------------------
\E[13;3HxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
\E[12;5HxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
\E[11;7HxXXXXXXXXXXXXXXXXXXXXXXXXXx
\E[10;9HxXXXXXXXXXXXXXXXXXXXXXx
\E[9;11HxXXXXXXXXXXXXXXXXXx
\E[8;13HxXXXXXXXXXXXXXx
\E[7;15HxXXXXXXXXXx
\E[6;17HxXXXXXx
\E[5;19HxXx
\E[5;19H   
\E[13;59HxXx
\n
\E[1;1H
\E[6;17H       
\E[23;37HxXXXXXx
\n
\E[1;1H
\E[13;59H   
\E[22;39HxXx
\n
\E[1;1H
\E[7;15H           
\E[13;55HxXXXXXXXXXx

より小さい画面サイズを使用すると、スクロールを引き起こさない改行が一番下の行にある可能性が高いため、上にスクロールすることがわかります。

おすすめ記事