tmuxウィンドウのタイトルがある場合はカスタムに設定し、それ以外の場合は現在の作業ファイルまたはディレクトリに設定します。

tmuxウィンドウのタイトルがある場合はカスタムに設定し、それ以外の場合は現在の作業ファイルまたはディレクトリに設定します。

tmux 2.6以降、tmuxはウィンドウのタイトルを受け入れます。で有効にできますtmux set -g pane-border-status top。これは、1ウィンドウあたり10個以上のウィンドウを実行するときに非常に便利です。また、名前を変更できるように、ヘッダーの形式を次のように指定しました。

set -g pane-border-format "#{pane_index} #{pane_title}"
# rename prompt
bind . command-prompt -p "(rename-pane)" -I "#T" "select-pane -T '%%'"

私が嫌いな唯一のことは、コンピュータのホスト名がデフォルト値に設定される代替デフォルト値です。私は以下を好みます:

  • pane_titleユーザーが設定した場合(#{pane_title})を使用します。
  • それ以外の場合は、現在の作業ディレクトリ(#{pane_current_path})を使用してください。

どちらかはそれ自体簡単です。

  • tmux set -g pane-border-format "#{pane_index} #{pane_title}"
  • tmux set -g pane-border-format "#{pane_index} #{pane_current_path}"

tmuxの形式化部分(https://github.com/tmux/tmux/wiki/Formatspane_index)は、私が望む代替タイプを達成するために三項条件付きチェックを使用できることを示唆していますが、設定しないと、ウィンドウ内のすべてのコマンドがデフォルト値に設定されているhostnameように見えるため、すべての場合に機能させることはできません.作成されました。これが私が現在持っているものです:

tmux set -g pane-border-format "#{pane_index} #{?#{!=:#{pane_title},$(hostname)},#{pane_title},#{pane_current_path}}"

これは、ユーザーが明示的に名前を変更したPodと同じホスト名で作成されたPodに適用されます。残念ながら、私の作業コンピュータのホスト名はIPに応じて変更されるため、上記のコマンドは脆弱に見えます。さらに悪いことは、何らかの理由でtmux設定に入れず(もちろんtmuxプレフィックスなしで)ウィンドウで直接実行する場合にのみ機能することです。 Pane_titleが設定されていないことを確認するより良い方法はありますか?

ベストアンサー1

フックを使用して、新しいウィンドウのウィンドウタイトルをよりわかりやすいものに設定できます。たとえば、次のようになります。

set-hook -g after-split-window 'selectp -T ""'
set-hook -g after-new-window 'selectp -T ""'
set-hook -g after-new-session 'selectp -T ""'

次に、ホスト名の代わりに空のヘッダーを見つけます。

#{?pane_title,#{pane_title},#{pane_current_command}}

おすすめ記事