31

それぞれが「screen-Sname」で作成された複数の画面セッションを実行しており、現在の画面セッションの作成に使用した名前をステータスバーに表示できるようにしたいと思います。

しかし、私はこれを達成できないようです。何か案は?

4

8 に答える 8

46

セッション名を表示する最も簡単な方法は

  C-a : 
  sessionname

(後に名前を指定せずにsessionname

マンスクリーンの「カスタマイズ」セクションを参照してください

于 2012-04-05T09:18:01.373 に答える
22

screenキャプションバーとハードステータスバーの2つのステータスバーがあり、どちらもman画面の「STRINGESCAPES」セクションで指定された文字列エスケープを使用します。残念ながら、セッション名を直接参照するエスケープはありません。

ただし、これを可能にするハックがあります。

screen$STY変数を使用してセッション名をシェルに渡します。シェルがウィンドウタイトルを設定しようとすると(これらのメソッドのいずれかを使用して)screen、その試行をキャプチャし、混乱して「ウィンドウハードステータス」と呼ばれるものに格納します。これには、使用できるエスケープがあります%h

したがって、キャプションまたはハードステータスバーのいずれかが含まれるように設定されていて、シェルがウィンドウタイトルをに%h設定しようとしている場合、バーが表示されるときに、はセッション名に置き換えられます。$STY%h

于 2010-03-26T22:55:26.843 に答える
14

の現在のバージョンでは、hardstatus行にscreenフラグがあります。%S

MWE(.screenrc):

hardstatus on
hardstatus alwayslastline
hardstatus string "%S"

これにより、IDなしのセッション名が表示されます(のように${STY#*.})。

(完全を期すために、ここここで他の質問に対する同じ答え)。

于 2015-08-10T13:36:24.467 に答える
3

https://superuser.com/a/212520/151988から言い換えて、これを〜/.screenrcに入れます。

screen 
screen $SHELL -c 'screen -X caption always "$STY"'
于 2014-06-16T15:26:59.417 に答える
2

スーパーユーザーは、これに対する答えを必要としません$STY。代わりに、backtickscreen configコマンドを使用してscreen -lshttps ://superuser.com/a/212520

于 2012-11-07T16:47:31.077 に答える
1

他に何も機能しない場合(私は)、回避策として、番号0のウィンドウを作成し、タイトルをスクリーン名に設定できます。

screen -S myscreen
C^a :title "myscreen"
于 2017-01-25T21:37:29.270 に答える
0

max_cantorがSuperUserAnswerで述べているように、セッション名のエスケープ文字をバージョン4.1.0に追加する必要があります。エスケープ文字機能は2008年に比較的小さなパッチで追加されたようです。したがって、勇気がある場合は、開発バージョン4.1.0のコピーを自分でgitして試してみることができます。

機会があれば開発版で試してみます。

于 2013-01-04T22:37:00.250 に答える
0

「screen-Xsessionname」私はsshを使用しています。これは正解だと思いました。セッション名は画面下部に表示されます。

于 2022-02-17T03:46:41.537 に答える