![Tildaはリリース時に偽の画面サイズについて文句を言いますか? [コピー]](https://linux33.com/image/88761/Tilda%E3%81%AF%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E6%99%82%E3%81%AB%E5%81%BD%E3%81%AE%E7%94%BB%E9%9D%A2%E3%82%B5%E3%82%A4%E3%82%BA%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E6%96%87%E5%8F%A5%E3%82%92%E8%A8%80%E3%81%84%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
答え1
何がこのメッセージを生成しましたか
これは Bourne Again シェルでは生成されません。これはティルダが作ったものではありません。
これはps
次のコマンドで生成されます。procpsツールセットパフォーマンスこれはset_screen_size()
機能を確認します。。このps
コマンドを使用するには、コンテンツを合理的に表示するには、端末装置が少なくとも9列×2行でなければなりません。どこかで、あなたはそれを知らずに電話していますps
。
このps
コマンドは、標準I / Oファイル記述子に接続されているターミナルデバイス(ラインルール)から直接ターミナルサイズを取得し、その値が正しい数値の場合は環境変数としてオーバーライドできますCOLUMNS
。以下を実行して、決定を下すためにコマンドに表示される内容を確認LINES
できます。ps
sttyサイズ; printenv 列行次のコマンドを実行して脚を引っ張ることができます
ps
。列=65535行=1ps
COLUMNS
環境変数を愚かな131072×1値に設定した場合LINES
(の出力に示すように)、printenv
これを行わないでください。 ☺ ただし、出力からわかるように、エンドデバイス自体はこのサイズを報告する可能性が高くなりますstty
。 (Bourne Againシェルが実行するすべての操作は、checkwinsize
これらのシェル変数の値を設定するだけです。エクスポートしないと、これらの変数はps
端末デバイスの報告されたサイズに関係なくその環境のコマンドに渡されるわけではありませんcheckwinsize
。の場合、環境変数が意味がない場合、端末装置はそれ自体が報告言うことはできません、後者は解決すべき基本的な問題です。 )
そのため、Tildaに誤りがある可能性があるというメッセージは生成されませんでした。エンドデバイスのサイズは共有リソースであり、エンドデバイスの開かれたファイル記述子を持つすべてのエントリは、ioctl()
システムコールを介して任意に変更できます。しかしそれは慣例によると設定、ソフトウェア使用シナリオ端末エミュレーションプログラムTildaと同様に、エミュレーションを表示するGUIウィンドウのサイズが変更されると、ターミナルエミュレータプログラムによって実行されます。ターミナルエミュレータプログラムはGUIサイズ変更イベントを取得し、それを列と行に変換し、それを使用してデバイスサイズを設定しますioctl()
。
だからといって、他のものがこのゴミに適していないということではありません。結局設定できますあなた自身意味のないサイズに達するには、次のコマンドを実行します。
stty列1行65535
私たちは…
端末装置サイズをリセットする方法
エンドデバイスが報告したサイズが意味がない場合:
- GUIターミナルエミュレータを使用している場合は、列/行ごとにGUIサイズを左右に調整します。これにより、
ioctl()
端末サイズが適切な値でトリガされ、設定されます。 - サイズをより合理的な値に設定します(例:)。
stty列80行25
reset
コマンドを使用してください。reset
エンドデバイスのサイズに加えて、多くの異なる点が設定されています。- 端末エミュレータが DEC VT340/VT420 と互換性がある場合は、適切な DECSCPP および DECSLPP/DECSNLS 制御シーケンスを直接実行するか、Noshツールセット~の
console-resize
(別名resizecons
)これを発行するコマンド:80×25のサイズ変更