私がやっている
ssh -t host screen -D -RR
OS X(10.9)のターミナルタブ。
My~/.screenrc
はすべてのリモートホストで同一であり、次の行が含まれています。
hardstatus string "%H(%n:%t)$USER %h"
私~/.bashrc
もすべてのホストで同一です。
を実行しているホストhost_u
(Ubuntu 12.04.3 LTS
)にログインするScreen version 4.00.03jw4 (FAU) 2-May-06
とhost_u(1:bash)sds ~
、予想どおり、OSX端末のタブタイトルはです。
を実行しているホストhost_c
(CentOS release 6.3 (Final)
)にログインするScreen version 4.00.03 (FAU) 23-Oct-06
と、OS Xターミナルのタブタイトルは~/FooBar
(ssh/screen
コマンドを実行したローカルOSXディレクトリです。
問題:hardstatus
行が機能しませんhost_c
。
追加情報:
.screenrc
:
termcapinfo xterm* ti@:te@
との両方host_c
でhost_u
、TERM
はxterm-256color
(OS X端末から継承されます)です。
ハードステータスを設定するには、画面が端末(エミュレータ)に送信する正しいエスケープコードを知っている必要があります。それらはtermcap / terminfoを介して見つかります。関連する機能は次のとおりです。
hs
-設定されている場合、端末はハードステータスラインをサポートしますts
-カーソルをhardstatus行に移動します( "begin")fs
-カーソルを前の位置に戻します(「終了」)ds
-ハードステータスをクリア/リセットする方法(「デフォルト」)。本当の「ハードステータス」ラインはもうありません。xtermまたは他のGUIエミュレーターのタイトルを使用するには、機能を設定する必要があります。プログラムの混乱を避けるため、通常のtermcap / terminfoデータベースには設定されていません。そこにそれらを追加するか、.screenrcでそれらが設定された場合にどのようになるかを画面に伝えることができます。
termcapinfo xterm* 'hs:ts=\E]0;:fs=\007:ds=\E]0;screen\007'
(これにより、「画面」のデフォルトのタイトルが設定されますが、関連性が低い可能性があります。実際のエスケープコードは、端末エミュレーターによって異なる場合があります。特に、一部のxtermバリアントでは、0
in\E]0;
が不要な場合や、値が異なります。ターミナルエミュレータのマンページを確認してください。)
これらの設定は画面で使用されますが、他のアプリでは使用できません。たとえば、hardstatusをオーバーライドしたいエディターがある場合、実際のtermcapを検索し、hs
未設定(またはシステムのデフォルトが何であれ)を見つけて、それを行わないことを知っています。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加