Asciinema: キャストに不要な終了コマンドが含まれています

作成日 2018年02月24日  ·  3コメント  ·  ソース: asciinema/asciinema

こんにちは、

CTRL + Dを押してrecを使用してキャストを終了した後、なぜexitが印刷されるのか疑問に思いました。

redaxmedia<strong i="10">@redaxmedia</strong>:~$ exit
asciinema: recording finished
asciinema: press <enter> to upload to asciinema.org, <ctrl-c> to save locally

asciinema1.xxによって生成されたキャストは問題ないようです-もう一度削除したいと思います。

Before

After

最も参考になるコメント

2.0をリリースしたとき、私はこのリグレッションに気づいていましたが、それが原因でリリースをブロックしたくありませんでした。 しかし、今はそれについて議論する良い機会です。

これは、ctrl + d btwを押したときにexit印刷するシェルです:)

以前のバージョンのasciinemaは、ファイルに保存する前に記録全体をメモリに保持し、最後に記録されたフレームで「終了」を検出して破棄するのは簡単でした(asciinemaはそれが最後のフレームであることを知っていたため)。 新しいバージョンでは、よりリアルタイムでストリーミングに適した新しいファイル形式が登場し、リアルタイムでディスクに書き込みます。 このため、録音セッションが終了すると、「終了」はすでにファイルに書き込まれています。 また、端末に出力された「出口」を破棄することはできません。ネストされたbashセッションが存在する可能性があり、この「出口」は、内部シェルを終了したことを監視している人にとって役立つ情報であるため、最後の出口のみを削除できます。 。

これにはいくつかの解決策があります。

  1. 記録するときは、最新のフレームをメモリに保持し、新しいフレームが来たときにディスクに書き込んで、1フレームのサイズのバッファにします-ここでの欠点は、クラッシュ/ターミナルクローズ時にデータ損失を引き起こす可能性があります(ただし、1フレームのみ)、
  2. セッションの終了時にファイルを閉じた後、ファイルを再度開いて、最終的な「終了」を除外できます。ソリューション1と同様に、ストリーミング方式で(memにすべてをロードしないように)実行する必要があります。 、
  3. 記録時間ではなく再生時にフィルターで除外します-これには、ターミナルでasciinema play ....何らかの形式の先読みが必要になりますが、記録全体をmemにバッファリングするWebプレーヤーで非常に簡単に実行できます(これは別です)トピック、理想的にはWebブラウザで全体の記録を必要としないようにしたいmem)

一般的に、私は録音時にソースデータを変更しないことを好みます(テキストの変更、タイミングの変更、フレームの削除)。 最後の「出口」を削除すると、ストリームからデータが削除されますが、ユーザーが本当に望んでいるものではないため、削除しても問題ありません。

解決策2.現時点で私にとって最も簡単なようです。

全てのコメント3件

2.0をリリースしたとき、私はこのリグレッションに気づいていましたが、それが原因でリリースをブロックしたくありませんでした。 しかし、今はそれについて議論する良い機会です。

これは、ctrl + d btwを押したときにexit印刷するシェルです:)

以前のバージョンのasciinemaは、ファイルに保存する前に記録全体をメモリに保持し、最後に記録されたフレームで「終了」を検出して破棄するのは簡単でした(asciinemaはそれが最後のフレームであることを知っていたため)。 新しいバージョンでは、よりリアルタイムでストリーミングに適した新しいファイル形式が登場し、リアルタイムでディスクに書き込みます。 このため、録音セッションが終了すると、「終了」はすでにファイルに書き込まれています。 また、端末に出力された「出口」を破棄することはできません。ネストされたbashセッションが存在する可能性があり、この「出口」は、内部シェルを終了したことを監視している人にとって役立つ情報であるため、最後の出口のみを削除できます。 。

これにはいくつかの解決策があります。

  1. 記録するときは、最新のフレームをメモリに保持し、新しいフレームが来たときにディスクに書き込んで、1フレームのサイズのバッファにします-ここでの欠点は、クラッシュ/ターミナルクローズ時にデータ損失を引き起こす可能性があります(ただし、1フレームのみ)、
  2. セッションの終了時にファイルを閉じた後、ファイルを再度開いて、最終的な「終了」を除外できます。ソリューション1と同様に、ストリーミング方式で(memにすべてをロードしないように)実行する必要があります。 、
  3. 記録時間ではなく再生時にフィルターで除外します-これには、ターミナルでasciinema play ....何らかの形式の先読みが必要になりますが、記録全体をmemにバッファリングするWebプレーヤーで非常に簡単に実行できます(これは別です)トピック、理想的にはWebブラウザで全体の記録を必要としないようにしたいmem)

一般的に、私は録音時にソースデータを変更しないことを好みます(テキストの変更、タイミングの変更、フレームの削除)。 最後の「出口」を削除すると、ストリームからデータが削除されますが、ユーザーが本当に望んでいるものではないため、削除しても問題ありません。

解決策2.現時点で私にとって最も簡単なようです。

説明ありがとうございます。

キャストがexitよりもCTRL+D exitを使用しているのを見たことがあります。これにより、2つの出口が印刷されます。 ただし、これが有効なバグであり、誰かがすぐに修正することを願っています。

これに関する更新はありますか? 私は同じ問題に直面しています。

このページは役に立ちましたか?
0 / 5 - 0 評価