ターミナルでclearを実行すると、画面の上部から現在の行へのスクロールバックバッファが削除されます。 xterm、st、およびurxvtで試しましたが、問題は解決していません。スクロールバックバッファに触れないようにクリアの動作を変更する方法はありますか?
承認された回答:
「画面上部から現在の行まで」というコメントはあいまいです。 目に見える部分の上から意味する場合 画面のスクロールバックではありません 。ターミナルのスクロールバックは、スクロールバー(またはシフトページアップなどの適切なキー)を使用した場合にのみ表示される部分です。
XTerm制御シーケンスは、関連するエスケープシーケンスを文書化します:
CSI Ps J Erase in Display (ED).
Ps = 0 -> Erase Below (default).
Ps = 1 -> Erase Above.
Ps = 2 -> Erase All.
Ps = 3 -> Erase Saved Lines (xterm).
端末記述機能clear
最後から2番目のものを使用します(例:
clear=E[HE[2J
カーソルを左上に置き、画面全体(表示)をクリアします。あなたはできた 以下の消去を使用します 、ただし、端末の説明では使用されていません。
スクロールバックをクリアすることを指します :これは端末固有の機能であり、元々はxtermのエスケープシーケンス(1999、ctlseqs.msに記載されていますが、変更には記載されていません)であり、後で(2011)Linuxコンソールおよび対応する端末の説明の拡張機能として実装されました。ターミナルデータベースには、それが「その他の拡張機能」としてリストされています。
現在、これらの端末の説明には次の機能があります:
- linux3.0(「linux」の現在のデフォルト)
- パテ
- xterm + basic(ほとんどの「xterm」バリアントで使用されるビルディングブロック)
VTEなどのxtermの類似物でサポートされているかどうかは、テストによって回答する必要があります(VTEまたはKonsoleに関する有用なドキュメントはありません)。
拡張機能を使用したくない場合は、 E3
を削除できます。 使用する端末の説明からの機能(例:
infocmp -1x >foo
edit foo, removing the line with "E3="
tic -x foo
オプション-1
を使用することを提案しました および-x
フォーマットを簡素化し、変更する機能を表示します。 https://ghostbin.com/paste/kfsbjに示されている例は、そのアドバイスと一致しています。
- パス名
/home/flowerpick/.terminfo/x/xterm
ncursesによって使用されます - 機能
AX
およびXT
拡張機能です(E3
など) )、-x
で表示 オプション。
複数の端末タイプを使用している場合は、($TERM
の値)ごとにこれを行う必要があります。 )、変更はclear
を実行するマシンにのみ適用されます 。 infocmp
の最初の数行 出力には、作業中のものが表示されます:
# Reconstructed via infocmp from file: /home/flowerpick/.terminfo/x/xterm
xterm|xterm terminal emulator (X Window System),
たとえば、uxrvt
$TERM
を設定します rxvt-unicode
のようなものに 、infocmp
でこのような行を生成します :
# Reconstructed via infocmp from file: /lib/terminfo/r/rxvt-unicode
rxvt-unicode|rxvt-unicode terminal (X Window System),
st
プログラムはxterm
を使用します (またはおそらくxterm-256color
)、そののコピーを見てからしばらく経ちましたが コメントするのに十分うまくいきました。
ちなみに、あなたはできた clear
のエイリアスがあります これは(端末の説明を無視して)指定されたエスケープシーケンスを送信していますが、これが誰からも報告されているのを見たことがありません。
「上をクリア」したい場合は、「クリア」と入力するほど簡単ではありません。エスケープ