ZSHプロンプトを oh-my-zsh でカスタマイズして読みやすくし、リポジトリにいる場合はgitに関する情報を追加しました。
例:bob@inf [~/docs] %
bob@inf [~/src/nicest] master %
(gitリポジトリ内)
うまく動作しますが、tmux
とウィンドウ名にいくつかのバグがあります。それでも意味のない値が表示され、automatic-rename off
を使用して無効にすることはできません(機能せず、コマンドごとにウィンドウ名が変更されます)。最初の例では、tmuxはウィンドウ名に~/docs
を使用します。
私はそれをどのように修正できるかわかりません、変更を加えることができても問題がどこにあるのかを理解したい場合は、zshプロンプトをそのまま維持しますか?
別の解決策は、コマンドsettile
(from this answer )を再定義することですが、正しい方法を実行する方法がわかりません。
Oh-my-zshを覗いてみたところ、 おそらく疑わしい が見つかりました。
TERM環境変数の値がscreen
で始まる場合(screenとtmux)、screen端末制御シーケンスを使用してウィンドウの名前を
..
の後に最後の13文字、または15文字未満の場合はパス全体)ssh
、Sudo
、およびその他数個は数えません)。このように機能しているようです(そのディレクトリにいたときに、ウィンドウの名前が~/docs
に変わったと言っていました)。この自動名前変更を無効にしたい場合は、.zshrc
でDISABLE_AUTO_TITLEシェルパラメータをtrue
に設定することで完全に無効にできます。
DISABLE_AUTO_TITLE=true
対話型シェルでこれを設定しただけでは、現在のウィンドウの名前が空の文字列になりますが、oh-my-zshはそのシェルインスタンスの各プロンプトとコマンドの前にウィンドウの更新を停止します(すべての新しいシェルインスタンスに影響する.zshrc
)。
上記の答えがあなたに解決策を与えることを私は知っていますが、別の解決策は単に〜/ .tmux.confにこのオプションを追加することです
set-option -g allow-rename off
私は同じ問題に遭遇しました。それは、tmuxのウィンドウ名が.tmux.confで設定することによっても変更されたことです:
set-window-option -g automatic-rename off
クリスの回答に感謝します。変更した後、私のtmuxウィンドウ名が自動的に変更されませんでした。
set -g default-terminal "screen-256color"
に:
set -g default-terminal "xterm-256color"
特定のウィンドウでのみ自動名前変更を無効にしたい場合は、以下を使用できます。
set -t [WINDOW_NUMBER] automatic-rename off
別のセッションの特定のウィンドウで自動名前変更を無効にします。
set -t [SESSION]:[WINDOW_NUMBER] automatic-rename off