web-dev-qa-db-ja.com

ウィンドウのタイトルを変更しないgnuscreen

Gnu screenで作成した新しいウィンドウに意味のある名前を設定しましたが、「cd」またはvimを開くと、たとえばその名前が「pwd」に変更されます。画面がタイトルを変更しないようにする方法はありますか? tmuxにそのような設定があることは知っていますが、何らかの理由で、複数の垂直分割があるtmuxではvimのスクロールが非常に遅いため、それを放棄する必要がありました(tmux)。アイデアは大歓迎です!

11
Anton Pegushin

gnu screenには、この機能をオフにする方法がないようです(いずれの場合も、これを選択的に適用します)。これを修正する方法は、Shellとvimの動作を変更することです。

3
Thomas Dickey

私にとって問題だった/ etc/screenrcの行は

ハードステータス文字列 "[画面%n%?:%t%?]%h"

それが特定されたら、システムファイルを編集する必要はありませんでした。画面のタイトル変更を回避できます

CTRL-A:hardstatusは常に無視します

現在のウィンドウの場合、または将来のウィンドウの場合は〜/ .screenrcに以下を追加します。

hardstatusは常に無視します

(bashプロンプトからターミナルウィンドウのタブとウィンドウタイトルを設定して、有用な情報を含めましたが、画面が役に立ちませんでした。)

2
W Dean Stanton

Centosでは、これはデフォルトの/ etc/bashrcによって実行される/ etc/sysconfig/bash-Prompt-screenを作成することで修正されます。もし、あんたが

touch /etc/sysconfig/bash-Prompt-screen
chmod +x /etc/sysconfig/bash-Prompt-screen
exec bash

次に、実行されますが、(空であるため)何も実行せず、ウィンドウのタイトルはそのままにしておきます。 (現在のシェルでこれをトリガーするためにbashを再起動するexec bashに注意してください。)

hardstatus alwaysignore私には機能しませんでした

2
math

あなたはどんな「窓」について話しているのですか?

Screenと、おそらくShellとvimは、これらのことのために用語エスケープコードを端末に送信します。一部の端末エミュレーターは、それらすべてをキャッチするのがあまり得意ではなく、本質的にfubarになります。しかし、私がそれが起こるのを見たので、それは何年も経っています。

Screenでは、ウィンドウのタイトルをtitle <title>で設定し、プログラムで(キーまたは特別なESCシーケンスにバインドすることにより)設定できます。最終的に、これらのプログラムは端末にシーケンスを送信します。 Prompt_COMMAND環境変数を使用して、たとえばcwdに応じてこれを動的に変更できます。これが私のシステムの/ etc/bashrcによって設定されているようです。

printf "\033]0;%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"

タイトルを完全になくすには、(少なくとも)次の3つのことを行う必要があります。

  1. 1画面を除くすべてを閉じ、コマンドプロンプトで、および~/.profileがロードされた後の/etc/bashrcでPrompt_COMMANDの設定を解除します。
  2. 画面のtitleコマンドを使用します。 Ctrl-A、次に:、次にtitle ""<CR>を押します。これは.screenrcでも設定できます。
  3. シェルからnullシーケンスを送信します。

    printf "\033]0;\033\\"
    

他の何か(vimなど)が設定している場合は、さらに調査する必要があります。

スクリーンのマニュアルページには、タイトルに関するセクションがあり、そこで詳細に説明されています。

1
Otheus

関連して、ウィンドウタイトルを設定した後(そしてPrompt_COMMANDが設定されておらず、PS1に問題がないことを確認した後)、一部のシステムで画面を起動するとウィンドウタイトルが変更されることがわかりました。多くの実験とフラストレーションの後、私はついに、この問題が発生していないシステムからスクリーンパッケージのインストール済みファイル/ etc/screenrcを取得し、それを使用して問題が発生したシステム上の同じファイルを置き換えることで、問題。 screenはウィンドウタイトルを変更しなくなりました。正確には、/ etc/screenrcのどの行が実行しているのかわかりません。 2つのscreenrcの違いは非常に大きいので、わざわざ調べようとはしませんでした。

1
guest_screener