FreeBSDのxtermでフルスクリーンCLIプログラム出力を非表示にする方法は?

FreeBSDのxtermでフルスクリーンCLIプログラム出力を非表示にする方法は?

UbuntuのxtermでフルスクリーンCLIプログラム(lessやvimなど)を使用して終了すると、プログラムのフルスクリーン出力は表示されなくなります。しかし、FreeBSDで同じことを行うと、フルスクリーン出力は次のコマンドラインの上にそのまま残ります。たとえば、Bashオプションを使用してFreeBSDで以前の動作を有効にする方法はありますか?

ベストアンサー1

FreeBSDの「xterm」のtermcap定義には、代替画面エスケープシーケンスが省略されています。これについては、以前にここで議論したことがあります。次のように取ることができるいくつかの回避策があります(項目が維持されるためrxvt)。

#!/bin/sh
TERM=rxvt tput ti
less "$@"
TERM=rxvt tput te

この場合、rxvtはxtermエスケープシーケンスを使用するため、これは「動作」します。簡単に設定すると、TERM=rxvtご使用の環境では良い結果は得られませんが、このセクションは便利です。

または、/etc/termcapターミナルデータベースを変更して再コンパイルすることもできます。参考までに、代替画面を削除した変更へのリンクは次のとおりです。

改訂 200503 by dougb Mon 12月14日 07:18:31 UTC 2009

コメントを変える

人々がこの動作をより簡単に有効にするために、いくつかの例xterm * - clearエントリをtermcapファイルに追加しました。

しかし、これの欠点は、(再び言うが)リモートシステムにパイプしたい場合(もちろんFreeBSDを除く)、シェルでは使用できないことです。これらの「xterm * - clear」エントリはUbuntuには表示されません。

追加資料:

おすすめ記事