search
LoginSignup
30
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

iTermでSSHの接続先によって背景色を変える

色を変える理由?

非常に簡単で、SSH先の本番サーバでやらかさないようにするため

ググって出てくるの(iTerm SSH 接続先 背景色 変更)、確かに色は変わるが元の色に戻すのが面倒だったり、微妙に違う色になるのでイライラする


YIX8w4.png

結論から言うとプロファイルスイッチを利用する

まず、 iTerm2 -> Preference で設定画面を開く。

Profile タブをクリックし、現在使っているプロファイルを複製する。(プロファイルを選択し、下の歯車アイコンをクリックして Duplicate Profile)

名前をDefault含め、わかりやすい名前にする。(僕は zsh, zsh_red, zsh_blue のようにしている)

プロファイルのコピー・名前の変更が出来たら Colors タブを選び、好みのバックグラウンドカラーを選ぶ。

おわったら

.zshrc を編集する。 bashは知らん。

function ssh_color() {
 case $1 in
   # product- から始まるところは背景を赤くする
   # staging- から始まるところは背景を青くする
   product-* ) echo -e "\033]50;SetProfile=zsh_red\a" ;;
   staging-* ) echo -e "\033]50;SetProfile=zsh_blue\a" ;;
   *) echo -e "\033]50;SetProfile=zsh\a" ;;
 esac
  ssh $@
  echo -e "\033]50;SetProfile=zsh\a"
}

alias ssh='ssh_color'
compdef _ssh ssh_color=ssh

ミソは compdef _ssh ssh_color=ssh で、これをしないとコマンド補完が効かなくてmacを破壊したくなる(したくなった)

編集し終わったら $ source .zshrc する。

これでマッチしたホスト名に対応するプロファイルが読み込まれ、終わったらデフォルトプロファイルに戻るので幸せになる。

さいごに

ちなみに 対象ホストSSHで接続しながらプロファイルの色を触りながらでも色のプレビューが効く。


iTerm2で快適な環境作り | エディタ | DoRuby が割と内容同じということに今更気づいたが、補完効かなさそうと思ったので投稿する

ブログに書いたのをそのまま持ってきた https://my.iesaba.com/posts/iterm-ssh-color

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
What you can do with signing up
30
Help us understand the problem. What are the problem?