web-dev-qa-db-ja.com

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

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

6
Zedfrigg

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にはありません。

参考文献:

9
Thomas Dickey

簡単な修正が必要な場合は、FreeBSDの.bashrcにこれを入れてください。

export TERM=xterm-clear
0

lessに最後のページを残してもらうには、export LESS=Xmanページ を参照してください。 eFも好きです。

0