tmuxがTERM変数をスクリーンに設定するのはなぜですか?


19

引用tmuxmanページ:

TERM環境変数は、tmux内で実行されているすべてのプログラムに対して「screen」に設定する必要があります。新しいウィンドウの環境には自動的に「TERM = screen」が追加されますが、シェルの起動ファイルでこれをリセットしないように注意する必要があります。

これは、tmuxセッションを任意の端末(リモートなど)に接続でき、screen最小公分母であるためですか?自分の端末を知っている場合、予期しない結果なしに強制できますか、またはサポートされていない機能の一部が(スクロールなど)壊れますか?

回答:


13

これは、GNU screen用に以前にインストールされた端末記述を利用するためにこれを行います。

tmuxscreenの両方は、アプリケーションに(ほぼ)「同じ」端末記述を提供し、異なる端末からの接続を簡素化します。tmuxおよびscreenプログラムは、内部(TERM = screen)と外部(xterm、linuxなど)の違いを処理することになっています。そのため、screen端末の説明は「どこでも」インストールされています(通常はncursesによって)。

いくつかの違いがあります。

  • GNU画面には、「スタンドアウト」機能(技術的には特定の端末機能ではなく、cursesアプリケーションの利便性のための抽象化)を表す非常に古い問題があります。tmuxにはその制限はありません。しかし、改善されたTERM = tmuxは必ずしも「どこでも」ではありません。
  • GNU画面には、ハイブリッド端末記述を使用する機能があります。外部TERM = xtermと "screen.xterm"が存在する場合、内部TERM値にそれを選択します。(たとえば、端末データベースを参照)。tmuxはそれを行いません。

5

以下のようtmuxの2.1は、使用することができますtmux terminfoのを

'default-terminal'がセッションオプションになりました。さらに、これが「screen- *」に設定されている場合、画面の動作をエミュレートします。イタリックが必要な場合、これを「tmux」に設定できますが、これはまだ新しいものであり、古いncursesがインストールされているすべてのプラットフォームで必ずしもサポートされているわけではありません

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.