LoginSignup
6
3

More than 5 years have passed since last update.

tmuxのwindow名がzshのときだけカレントディレクトリにする

Posted at

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つ前アクティブ - とか)

参考文献

tmux man page: format

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3