次の順序は、端末/環境によって異なる効果があります。
$ ls
1
2
$ man ls
enter q
現在のプロンプトの上に最後に表示されたマニュアルページ画面を表示するか、ls出力と古いシェル出力を復元します。たとえば、シェルで特定のタスクを実行するために使用して一時停止すると、vim
同じ効果が観察されます。
Fedora 19では - screenのデフォルト値はno-restoreであるように見え、gnome-terminal / xtermはデフォルトでdo-restoreを使用します。
Solarisでは、使用される端末/terminfo dbによって異なります。
さまざまなシステム/端末で回復動作を一貫して設定したいと思います。
答え1
この機能は、「代替画面」または通常画面と代替画面を切り替えるようです。
xtermを使用してナビゲートできます。たとえば、man man
anと入力しxterm
てmanを終了します。これでCtrl、+Mouse2(マウスの中央ボタンをクリック) - >「代替画面を表示」で代替画面に切り替えることができます。または直接入力することもできますxterm制御シーケンス、例えば:
$ echo -e '\033[?47h' # alternate screen
$ echo -e '\033[?47l' # normal screen
最後の2つのコマンドは、gnome-terminal(および他の端末でも使用可能)で使用できます。
man
//vi
起動時に何が起こるのかは、基本的にless
抽象的な画面消去コマンドを送信することです。終了(または中断)時に抽象再開画面コマンドを送信します。コマンドを特定の端末制御シーケンスに変換する方法は次のとおりです。用語情報データベース。
代替画面切り替えを無効にする
すべての端末で動作するのは、ローカルのterminfoエントリを調整することです。つまり、抽象消去/復元画面コマンドのマッピングを削除します。
現在の$TERM
エントリ(Fedora 19のgnome-terminalなど)に対して、次のことができます。
$ echo $TERM
xterm-256color
$ infocmp -1 > xterm-256color
$ sed 's/^\(xterm-256color\)|/\1-na|/ ; /smcup\|rmcup/d ' \
xterm-256color > xterm-256color-na
$ diff -u xterm-256color*
--- xterm-256color 2013-08-04 16:33:52.041393461 +0200
+++ xterm-256color-na 2013-08-04 16:36:56.829930520 +0200
@@ -1,5 +1,5 @@
# Reconstructed via infocmp from file: /usr/share/terminfo/x/xterm-256color
-xterm-256color|xterm with 256 colors,
+xterm-256color-na|xterm with 256 colors,
am,
bce,
ccc,
@@ -155,7 +155,6 @@
rin=\E[%p1%dT,
rmacs=\E(B,
rmam=\E[?7l,
- rmcup=\E[?1049l,
rmir=\E[4l,
rmkx=\E[?1l\E>,
rmm=\E[?1034l,
@@ -170,7 +169,6 @@
sgr0=\E(B\E[m,
smacs=\E(0,
smam=\E[?7h,
- smcup=\E[?1049h,
smir=\E[4h,
smkx=\E[?1h\E=,
smm=\E[?1034h,
$ tic xterm-256color-na # loads the file to $HOME/.terminfo
$ find ~/.terminfo -type f
$ HOME/.terminfo/x/xterm-256color-na
これで次のようにテストできます。
$ TERM=xterm-256color-na man man # and then hit q
複数の端末を使用している場合は、他の端末に対して上記の手順を繰り返すことができます。すべてが期待どおりに機能したら、TERM
シェルのrcファイルを介して設定できます。
端末名を引数として直接指定することもできますinfocmp
。たとえば、次のようになります。
$ infocmp -1 screen > screen
代替画面切り替えの有効化
一部の端末は代替画面切り替え機能をサポートしています(例:画面)、しかしデフォルトでは無効になっています。。
screen
以下で有効にできます~/.screenrc
。
$ cat ~/.screenrc
altscreen
SSHを介してSolarisシステムにリモートでログインする場合、リモート構成のシステム全体のterminfoデータベースには、いくつかの履歴があるか破損しているか、「フロンティア」と一致しない珍しい/ Solaris固有のデフォルト値を含めることができます。 SSHを実行している端末です。
したがって、ローカルのterminfoデータベースを/ usr / share / info(クライアント)から(サーバー)にコピーすることを選択できますhost:~/.terminfo
。
コンパイルされたterminfo型が互換性がない場合は、前の段落と同様にアイテムをエクスポートまたはインポートすることもできます。
私はterminfo-dbを使ってみました。シビンSolaris 10システムに直接インストールしてコピーするだけです。
ユーザー間で代替terminfoデータベースを共有する場合は、TERMINFO
環境変数を介してそのパスを指定できます。
制御シーケンスを無視
一部の端末は、代替画面遷移を無効にする制御シーケンスをサポートしています。たとえば、xtermにはオプションがありますが、gnome-terminalにはありません。
xtermの場合XResources、例えば
XTerm*titeInhibit: true
プログラム固有の構成
一部のプログラムには、送信制御シーケンス/terminfoコマンドを構成する構成ファイルがあります。例えば
$ LESS=X less foo
less
画面を消去または復元しないように設定します。
vim
次のようなものを含めることができるからです。
set t_ti= t_te=
それはあなた次第です~/.vimrc
。
上部の動作を設定する方法のオプションが見つかりませんでした。デフォルトでは回復画面は送信されません。