色を変える理由?
非常に簡単で、SSH先の本番サーバでやらかさないようにするため
ググって出てくるの(iTerm SSH 接続先 背景色 変更
)、確かに色は変わるが元の色に戻すのが面倒だったり、微妙に違う色になるのでイライラする
で
結論から言うとプロファイルスイッチを利用する
まず、 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で接続しながらプロファイルの色を触りながらでも色のプレビューが効く。