introduction
tmuxでは普段window名にはプロセス名が表示されます。
vimとかシェル以外のプロセスが動いてる時はいいんですが、シェルのまま待機させとくとがzshばっかりになってつらい。
solution
下のように.tmux.confに書くとOK.
これで1:vim*とか2:hoge_directory-とか表示されるようになる。
.tmux.conf
set -g automatic-rename on
set -g window-status-format '#I:#{?#{m:#W,zsh},#(basename #{pane_current_path}),#W}#F'
set -g window-status-current-format '#I:#{?#{m:#W,zsh},#(basename #{pane_current_path}),#W}#F'
簡単に解説すると、automatic-rename onはその名の通り自動的にwindow名を変更する。
status[-current]-formatはwindow名の形式を指定する(currentはアクティブなwindow用)。
window名のフォーマットでは#を使うといろいろできるので使ったやつだけ解説します。
それ以外は参考文献のtmuxのドキュメントを参考に。
スペース途中に入れたりすると動かなくなるので注意。
ちなみにデフォルトだと#I:#W#Fです。
-
#I: window番号 -
#{?COND,A,B}: 条件CONDが真ならA、そうでないならB -
#{m:PATTERN,STR}: 正規表現PATTERNがSTRにマッチしたら真、そうでないなら偽 -
#W: window名 (普段はプロセス名が入ってる) -
#(CMD): シェル用のコマンドCMDの実行結果の1行目 -
#{pane_current_path}: アクティブなpaneのカレントディレクトリ -
#F: ステータス(アクティブ * とか1つ前アクティブ - とか)