2015年6月30日火曜日

tmuxでsshしたあとステータスラインの名称がリモートのままになるのを解決する

Tmux を使っていて ssh をリモートホストに行うとステータスラインが ssh を抜けた後もリモートの名称のままになっていて、どう考えてもミスする原因になるので、以下を .bashrc に記述しました。


function ssh() {
       export local window_name
       window_name=$(tmux display -p '#{window_name}')
       command ssh "$@"
       tmux rename-window "$window_name"
}

これで、ssh を抜けた後はもとのウインドウ名に戻ります。ローカルだと思ってその環境がリモートだったりしたら怖いですよね。

追記: このままだと tmux を起動していないときエラーが出るので if で判定するようにした。

if [ -n "${TMUX}" ]; then
        function ssh() {
                export local window_name
                window_name=$(tmux display -p '#{window_name}')
                command ssh "$@"
                tmux rename-window "$window_name"
        }
fi

こんな感じでどうでしょう?

0 件のコメント:

コメントを投稿