参考:
あまり気にしている人がいないのか、日本語での情報を見ないので、上げておきます。
表題の通り、vimでファイルを編集しているときに、そのファイル名をtmuxのウィンドウ名に設定しておきたいことがあるかと思います。これを実現する方法は簡単で、上のリンクを見てもらえれば分かるとおり、autocmdの設定でそのBufferに入ったときに、tmux rename-window
でファイル名(expand("%:t")
)を渡してやればいいだけです。
つまり、~/.vimrc
に以下を追記
augroup titlesettings
autocmd!
autocmd BufEnter * call system("tmux rename-window " . "'[vim] " . expand("%:t") . "'")
autocmd VimLeave * call system("tmux rename-window zsh")
autocmd BufEnter * let &titlestring = ' ' . expand("%:t")
augroup END
1、2行目はtmuxのウィンドウ名に関係するものであり、3行目は普通のターミナルのタイトルを変えるものです。
これで、Vimタブ間の移動、Vim分割ウィンドウ間の移動などをするたびにそのファイル名がtmuxのウィンドウ名に設定されます。
追記(2015/06/25)
但し、上の例ではtmux環境以外でVimを起動したときに、最後にアクティブだったウィンドウの名前が変更されてしまうので、tmux環境内で起動したときだけリネームが実行される必要がありました。
したがって、
if $TMUX != ""
augroup titlesettings
autocmd!
autocmd BufEnter * call system("tmux rename-window " . "'[vim] " . expand("%:t") . "'")
autocmd VimLeave * call system("tmux rename-window zsh")
autocmd BufEnter * let &titlestring = ' ' . expand("%:t")
augroup END
endif
のようにします。
(追記ここまで)
以下に自分の環境でどのように表示されるか、スクリーンショット載せておきます。
ご参考になれば幸いです。