端末出力の保存/復元方法

端末出力の保存/復元方法

一部のプログラム(vim / nano / nloadなど)は、端末全体を使用して内容を表示でき、終了時に以前の端末出力が復元されます。この回復プロセスをどのように実装しますか?

ベストアンサー1

この回復プロセスをどのように実装しますか?

彼らはそうしませんでした。これは実装の範囲外です。

これは…代替画面バッファスイッチが入っています。端末(または端末エミュレータプログラム)自体で実装されます。端末は、これらのTUIプログラムによって発行された制御シーケンスに応答する。 TUIプログラム制御いつこれは起こりますが、実装は何が起こったのかは、完全に端末の内部で起こりました。実際、TUIプログラムには進捗状況の同じモデルさえありません。これらの場合は、「カーソルアドレッシングモード」をオン/オフします。

すべての端末と端末エミュレーションプログラムに代替画面バッファがあるわけではありません。たとえば、カーネル仮想端末を提供するLinuxおよびBSDカーネルに組み込まれている端末エミュレータプログラムには通常、この機能はありません。

これらの端末には制御シーケンスはありません。したがって、端末タイプのtermcap / terminfoデータベースレコードには、「カーソルアドレッシングモード」への切り替えと現在の画面内容を上書きする制御シーケンスはありません。いいえ保存して復元してください。

vim、ナノなどそれについて何も知らない。彼らは他のことをしませんでした。彼らはその機能を果たすものではありません。彼らは単に「カーソルアドレッシングモード」に入り、出て行くことを知らせるtermcap / terminfo制御シーケンスを発行します。このメカニズムを使用する一部の端末では、「カーソルアドレッシングモード」とは次のことを意味します。代替画面バッファの使用。一部にはまだそうではありません。

追加読書

おすすめ記事