参考文献

参考文献

私は熱心なユーザーです魚の殻そして私はそれがとても好きです。

しかし、1つの疑問があります。

ページ上参考:というタイトルの段落があります「コマンドラインエディタ」便利なショートカットがたくさん載っています。

私にとって最も興味深いのはCtrl+L キー説明によると、「Ctrl-L は画面をクリアして再描画します」。試してみたところ、期待どおりに動作しました。ただし、前のプロンプトに追加されるいくつかの記号が生成されます。これは、後方にスクロールすると確認できます。

例:

rosika@... ~/Schreibtisch> [3;J
rosika@... ~/Schreibtisch>

これが[3;J私が尋ねているものです。これは[確かに、(おそらく)4 桁の数字が入った長方形のようなものです。

なぜこのような現象が起こるのか、誰か教えてもらえませんか?これはどういうことでしょうか?そして、このようになるのでしょうか?

よろしくお願いします。

ご挨拶

ロシカ

私のシステム:

Linux/Lubuntu 16.04.4 LTS、64 ビット

魚v.2.2.0-3

答え1

UNIX 端末は、制御シーケンスとテキストを 1 つのストリームに混在させて解釈することでコンテンツで満たされます。多くの文字はテキストと制御コードの両方になる可能性があり、その意味はコンテキストによって異なります。

<esc> は[3;Jそのようなシーケンスの 1 つです。間違ったコンテキストでは印刷され、正しいコンテキストではディスプレイのリセットの一部になります。

詳細については、、、termcapおよびconsole_codesマニュアルページを参照してください。tput

答え2

端末エミュレータが環境変数の値と一致しませんTERM。最も一般的なエラーは、XTerm 以外のものが、xtermまたはxterm-newまたはという名前の termcap/terminfo レコードと一致すると考えることですxterm-256color

terminfo レコードは、クリアするスクロールバック バッファがあることと、そのクリア方法をプログラムに伝える比較的新しいE3機能 (現在はlinux、、、、、、、、および他puttyのいくつかの端末タイプに指定されています) を指定します。しかし、端末エミュレータは実際にはその制御シーケンスをサポートしておらず、代わりにそれに応答して表示される内容を出力します。fish シェルは、この terminfo 拡張機能を使用するコマンドを実行しています。putty-256colorxterm-basicxterm-newxtermxterm-256colorclear

環境変数の値に指定された名前は、TERM端末エミュレーターの動作を正しく記述する termcap/terminfo レコードの名前と一致する必要があります。

参考文献

関連情報