LoginSignup
8
5

More than 5 years have passed since last update.

tmuxのウィンドウ名をsshで繋いでるときは接続先ホストにする

Last updated at Posted at 2014-08-18

ssh接続しているときはtmuxのウィンドウ名が接続先になっているとわかりやすそうだったので、雑なfunctionを書いた。
以下のfunctionをzshが読める設定ファイルに記載すればOK。僕は.zshenvに書いてます。
sshから戻ると、ウィンドウ名はもちろん元に戻ります。

function ssh() {
  if [[ -n $(printenv TMUX) ]]
  then
    local window_name=$(tmux display -p '#{window_name}')
    tmux rename-window -- "$@[-1]" # zsh specified
    # tmux rename-window -- "${!#}" # for bash
    command ssh $@
    tmux rename-window $window_name
  else
    command ssh $@
  fi
}

sshでコマンドを実行するだけのケースの場合e.g.) ssh bar@example ls -l、最後の-lをウィンドウ名に設定しちゃうけど、その場合はインタラクティブシェルじゃないからまあよしとする。

参考

説明

ssh_configに設定を書くのは避けたいなと思いました。以下、その理由。

  • ssh_configに書く場合は、Host *に書けないので記述が重複する
  • 2番目のリンクのケースではssh_configzshのconfigで設定が分散する

sshのLocalCommandなら、%nで接続先ホスト名とれるから便利なんだけどね。

8
5
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
8
5