macOSのScreenから~/.terminfoをインポートできないのはなぜですか?

macOSのScreenから~/.terminfoをインポートできないのはなぜですか?

欲しい用語情報LinuxでmacOSでsshを実行すると、Home / Endなどのキーが機能するように端末(rxvt-unicode)が機能するようになりました。

通常、Linuxリモートホストを使用してこれを行うには、次のスクリプトを使用します。

ssh "$1" 'mkdir -p ~/.terminfo/r'
for f in /usr/share/terminfo/r/rxvt-unicode{,-256color}
do
    scp "$f" "$1":.terminfo/r/
done

しかし、これはmacOSでは機能しません。

を走ると、screen「学期が長すぎて申し訳ありません」という言葉が最初に浮かび上がります。

Brewバージョン(4.06.02)にアップデートすると、「rxvt-unicode-256color」のterminfoエントリが見つかりませんでしたというメッセージが表示されます。

TERMは正しく設定されており、rxvt-unicode-256color存在~/.terminfo/r/rxvt-unicode-256colorします。

実行しscreenてもTERMINFO=$HOME/.terminfo/効果はありません。

答え1

macOSと同様に、screenこれを実行すると次のことがわかります。dtrussstrace

2131/0x12997:  access("/Users/vladimir/.terminfo/72/rxvt-unicode-256color\0", 0x4, 0x7FFF5F2B56EC)       = -1 Err#2

何らかの理由で、screen最初の文字の代わりに最初の文字の16進表現を使用してterminfoディレクトリ構造を展開します。

したがって、問題を解決するには、以下を実行する必要があります。

ln -s r ~/.terminfo/72

今、すべてが正常であるようです。

答え2

ncurses 目的2文字ファイルシステム(MacOSやOS / 2など)の場合、ファイル名は次のとおりです。大尿を保存する/大文字と小文字を区別しない。この内容は次のように記録されます。NEWS文書。ところで、Appleはncursesの以前のバージョン(5.7)を提供しています。

ポータブルアプリケーションは、ターミナルデータベースの特定の構成に依存してはいけません。

しかし、xterm-256colorの現在のterminfoエントリは、カラーペアの値が制限を超えるため、古いncurses 5.7ベースシステムではうまく機能しません。 rxvt-unicode への影響は、ソースの構築方法によって異なります。これはよくある質問:

ncurses 6.132767以上のカラーペアなど、さまざまな機能のサポートが導入されました。他の実装では、通常、範囲外の値をゼロとして扱います。

答え3

infocmpLinuxシステムでは、パッケージでよく使用される用語情報をデコンパイルしてncurses一時ファイルに保存します。その後、このファイルをMacにSCPできます。

$ infocmp rxvt-unicode-256color > tmpterminfo

その後、Macで次のコマンドを使用してticファイルをコンパイルすると、出力はホームディレクトリの正しい場所に配置されます。

$ tic tmpterminfo

現在の最終ファイルの場所はですが、~/.terminfo/72/rxvt-unicode-256color将来変更される可能性があります。

関連情報