XtermでUbuntuのフルスクリーンCLIプログラム(lessやvimなど)を使用して終了すると、そのプログラムのフルスクリーン出力が表示されなくなります。しかし、FreeBSDで同じことをすると、フルスクリーン出力は次のコマンドの行の上にとどまります。たとえばBashオプションを使用して、FreeBSDで以前の動作を有効にする方法はありますか?
FreeBSDの「xterm」のtermcap定義では、代替画面のエスケープシーケンスが省略されています。それは前にここで議論されました。次のような回避策を実行できます(rxvt
エントリをそのままにしていたため):
#!/bin/sh
TERM=rxvt tput ti
less "$@"
TERM=rxvt tput te
この場合、rxvtはxtermエスケープシーケンスを使用するため、これは「機能」します。ご使用の環境でTERM=rxvt
を設定するだけでは良い結果は得られませんが、この部分は役に立ちます。
または、/etc/termcap
を変更して、ターミナルデータベースを再コンパイルすることもできます。参考までに、代替画面を削除した変更へのリンクは次のとおりです。
dougbによる改訂200503、Mon Dec 14 07:18:31 2009 UTC
変更コメント
いくつかの例のxterm * -clearエントリをtermcapファイルに追加して、人々がその動作を簡単に有効にできるようにします。
しかし、それの欠点は、リモートマシン(もちろんFreeBSD以外)にこれを渡したい場合、シェルでこれを使用できないことです。これらの「xterm * -clear」エントリはいずれもUbuntuにはありません。
参考文献:
簡単な修正が必要な場合は、FreeBSDの.bashrcにこれを入れてください。
export TERM=xterm-clear
less
に最後のページを残してもらうには、export LESS=X
。 manページ を参照してください。 e
とF
も好きです。