根本的な問題はscreen
、実際の端末(TERM
外部の環境変数によって識別されるscreen
)と内部のエミュレーションの間で行われるマッピングscreen
が不完全であることです。
(vttestまたは鋲を使用して)偶然にそれをテストすると、
これらの問題をterm
inで修正しようとする.screenrc
と、特定の実際の端末に対してのみ機能し、他の端末の実装に移植できないという欠点があります。ドキュメントノート
デフォルトではない目的のために、termコマンドの使用はお勧めしません。
screen
ドキュメントのこの機能を使用して、別の解決策があります(欠点は異なります)。
screenが自分自身の端末名を見つけようとすると、最初にscreenという名前のエントリを探します。term、ここでtermは$TERM
変数の内容です。そのようなエントリが存在しない場合は、screenが試行しますscreen
(またはscreen-w
、端末の幅が広い場合は(132 cols以上))。このエントリも見つからない場合vt100
は、代替として使用されます。
ncursesは、画面のマッピングの問題を修復するために、この場合の便利な代替端末の説明をいくつか提供します(例:screen.xterm-new)。実際には、を使用しTERM=xterm-new
、screenを実行すると、ファンクションキーの使用可能なマッピングを取得します。
画面のterm
設定に戻って参照すると、テスト中に、マッピングにまだ問題があることに気付く場合があります。これらの代替方法で対処されます。を使用して正確な端末記述を取得することが可能である場合term
、これらの代替手段はへの単純なエイリアスになりscreen
ます。ではない。
ncursesは(sic)を提供しませんscreen.xterm
:
TERM=xterm
xtermとは異なる端末エミュレータでは広く使用されています。このマッピングを追加しても、状況が悪化するだけです(たとえば、ncurses FAQのTERMを "xterm"に設定して使用しないのはなぜですか?)
- 代替名
screen.xterm
がリモートシステムにインストールされる可能性は低くなります(ターミナルデータベースの2015年6月からの変更コメントを参照)。
ただし、全体として、代替名の使用は、での使用よりも改善されています。作成するよりも多くの問題が解決さterm
れます.screenrc
。term
設定の逆も同様です。
term xterm
私の~/.screenrc
ファイルに追加するとそれが修正された。再度、感謝します!