Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

色を変える理由?

非常に簡単で、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

k725
諸行無常
https://hoshinoa.me
mobilus
コールセンター向けチャットサポートシステム モビエージェントの開発・運営を行っています
https://mobilus.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away