スクリーンと猫$ TERMは何になるべきですか?

スクリーンと猫$ TERMは何になるべきですか?

tmux報告する理由

$TERM=screen-256color

一般kitty的に報告

$TERM=xterm-kitty

tmux実行している場合はどれを使うべきですかkitty?高度な機能が明確にkitty提供され、報告機能も合理的ですxterm-kittyscreen-256プログラムが画面で実行されているかどうかを知る必要があると画面で報告するのはなぜですか?キティで実行するために画面を呼び出すときに問題がありますかxterm-kitty

答え1

キティ内でtmuxを実行している場合は、どのようなものを使用する必要がありますか?

tmux走るとき〜しなければならないTERM=screen、または、または、TERM=tmuxなどの派生語のいずれかを使用します。 TERM=screen-256colorTERM=tmux-256color

その男がtmux(1)言った…

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

..追加の説明のために...

このセッションで作成された新しいウィンドウのデフォルト端末(TERM環境変数のデフォルト)を設定します。 tmuxが正しく機能するには、「screen」またはその派生項目として設定する必要があります。

...彼らはまた強調した〜しなければならない

これティモックスウィキさらなる説明と回答のために続けます…

tmux 内の TERM は、「screen」、「tmux」、または同様のもの (たとえば「tmux-256color」) でなければなりません。存在しない問題を報告しようとしないでください!

画面で実行しているかどうかを知る必要があるプログラムはありますか?

はい。たとえば、多くのプログラムは、tput正しい値を使用しないと(または)で実行すると正しく表示されません。screentmuxTERM

学期とは何ですか?それは何をしますか?

環境変数TERMは、terminfo(5)データベースから読み取る端末記述の名前をアプリケーションに通知します。各説明には、端末を制御するために何を送信するかをアプリケーションに通知する複数の名前付き関数が含まれています。たとえば、「cup」関数にはカーソルを上に移動するためのエスケープシーケンスが含まれています。

TERMがアプリケーションが実行されている端末の正しい説明を指すことが重要です。説明が正しくないと、アプリケーションでエラーが発生する可能性があります。

infocmp(1) コマンドは端末記述の内容を表示し、tic(1) コマンドはファイルから記述を作成およびインストールします (両方とも通常 -x フラグが必要です)。

kitty xterm-kittyで実行する画面を呼び出すのに問題がありますか?

TERM実行画面の値が正しく設定されている(例:)、TERM=screen-256color有効なterminfo文字列があるか、それを処理する方法を知っている screen限り、必ずしもそうではありません。tmux

私のコンピュータの他のデリバティブは次のとおりです。

/usr/share/terminfo/s/screen
/usr/share/terminfo/s/screen-16color
/usr/share/terminfo/s/screen-256color
/usr/share/terminfo/s/screen.Eterm
/usr/share/terminfo/s/screen.gnome
/usr/share/terminfo/s/screen.konsole
/usr/share/terminfo/s/screen.linux
/usr/share/terminfo/s/screen.mlterm
/usr/share/terminfo/s/screen.mrxvt
/usr/share/terminfo/s/screen.rxvt
/usr/share/terminfo/s/screen.teraterm
/usr/share/terminfo/s/screen.vte
/usr/share/terminfo/s/screen.xterm-r6
/usr/share/terminfo/s/screen.xterm-new
/usr/share/terminfo/s/screen.xterm-xfree86

TERM設定が完了したら、実行する準備が整いましたinfocmp。値に有効なterminfoがあるかどうかを報告します。追加のテストでは、次の基本的なterminfo機能を確認できます。

for terminfos in $(find /usr/share/terminfo/s -type f -name 'screen*' -printf '%f\n' -o -name 'tmux*' -printf '%f\n'); do export TERM=$terminfos; printf "%s: %sthis is foreground color 10 %sitalics%s and now all attributes are turned off\n" "$terminfos" "$(tput setaf 10)" "$(tput sitm)" "$(tput sgr0)"; done

答え2

Kittyの高度な機能は以下に関連していますtmuxtmux

$ kitty icat ~/Pictures/fc.jpg 
Terminal does not support reporting screen sizes via the TIOCGWINSZ ioctl
$ TERM=xterm-kitty kitty icat ~/Pictures/fc.jpg 
Terminal does not support reporting screen sizes via the TIOCGWINSZ ioctl

TERMしたがって、Kittyが報告した内容と一致するようにtmuxでパージしても、せいぜい行き詰まった路地を見つけることができることがわかります。 Rangerでプレビューをレンダリングしようとすると、範囲がクラッシュします。

答え3

以下はいくつかの質問です。より興味深い答えは次のとおりです。

  • tmuxが報告する理由

    $TERM=screen-256color

以前のバージョンのtmuxでは、「そこにあるので」TERM = screenまたはTERM = screen-256colorを使用していました。結局のところ、状況は(a)tmux開発者が機能を追加したかった(b)画面がイタリック体の使用を妨げたため、状況は変わりました。

  • 通常、子猫は報告します。

    $TERM=xterm-kitty

    キティ内でtmuxを実行している場合は、どのようなものを使用する必要がありますか?

tmuxが選択できるようにする必要があります(色とファンクションキーの処理方法については、外部端末の説明を参照してください)。

  • 画面が画面256であると報告するのはなぜですか?

おそらく「screen-256color」と書かれているでしょう。 GNU画面は外部$ TERM値を表示し、内部値を選択します。ただし、この特定のファイルはユーザーの.screenrcファイルから来ます(通常はパッケージプログラムに関連する可能性があります)。

  • 画面で実行しているかどうかを知る必要があるプログラムはありますか?

まさか…

  • kitty xterm-kittyで実行する画面を呼び出すのに問題がありますか?

一部screenデフォルトでは、構成はbce(背景色の削除)を使用します。 Kittyはこの機能をサポートしていません(ymmv)。

関連情報