
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には表示されません。
追加資料:
- cap_mkdb - 機能データベースの作成(ターミナルデータベースコンパイルツール)
- GNU画面:-d -mを使用すると、奇妙なTERMCAPが表示されます。(FreeBSDの変更について言及)
答え2
less
最後のページを維持するには、export LESS=X
次を参照してください。マニュアルページ。私も好きe
ですF
。
答え3
簡単な修正が必要な場合は、FreeBSDの.bashrcに次のように入れます。
export TERM=xterm-clear