web-dev-qa-db-ja.com

iTerm 2プロファイル

私は最近iTerm2に切り替えて、気に入っています。私はあなたがいる環境/特定のマシンに対応するプロファイルを使用する方法があるかどうかと思っています。

Macの1つのウィンドウでタスクを実行している場合、デフォルトでプロファイルが表示されますが、マシンにssh(dev0としましょう)すると、iTermのプロファイルはプロファイルdev0に更新されます。 dev0を終了してexitを呼び出すと、プロファイルは再びデフォルトに切り替わります。

回避策の1つは、別のマシンにSSHで接続して区別する方法があるときに特定のプロファイルを開くことですが、接続が閉じている場合は、ウィンドウの背景を言うのではなく、テキストに基づいて通知する必要があります。

これは可能ですか?そうでない場合、この機能をどのように追加できますか?また、私が貢献できる方法はありますか?

40

iTerm2は、オンザフライでプロファイルを変更するカスタムエスケープコードをサポートしています。 .bashrcまたは.bash_profileに入れます。

<esc>]50;SetProfile=X^G

xはプロファイルです。たとえば、プロファイルを「Foo」という名前に変更するには、次のシェルスクリプトを使用します。

#!/bin/bash
echo -e "\033]50;SetProfile=Foo\a"

ログアウト時にプロファイルを元に戻すには、プロファイルを変更するコードを〜/ .bash_logoutにデフォルトに戻します。

53
George

zshユーザーの場合

mac(プライマリマシン用)とlinux(リモートマシン用)という2つのプロファイルがあるとします。

セッションに入るとき、zshにプロファイルをロードするように指示する必要があります

  1. リモートLinuxに接続する
  2. ~/.zshrc 追加 echo -e "\033]50;SetProfile=linux\a"
  3. すぐに効果を上げるためにファイルを調達する:source ~/.zshrc
  4. 新しいテーマはitermセッション内に表示されるはずです。

セッションを終了するとき、zshに元のプロファイルに切り替えるように指示する必要があります

  1. リモートLinuxに接続する
  2. linuxで~/.zlogout以下を追加
if [ "$SHLVL" = 1 ]; then
  echo -e "\033]50;SetProfile=mac\a"
  clear
fi

これで簡単にプロファイルを交換できます<3。

bashを使用している場合、手順は似ていると思いますが、代わりに~/.bashrcおよび~/.bash_logout

デモ

demo of session based profiles in iterm2

11
lfender6445

最新のiTerm2ナイトリー(ビルド2.9.20150329-執筆時-ナイトリー)では、これを簡単に行うことができます。あなたはそれをダウンロードすることができます ここ

インストールして開いたら:

  1. Ssh経由でリモートマシンにログインし、iTerm2(アプリメニュー)>Install Shell Integrationcurlを使用してスクリプトをダウンロードし、インストールします。 ローカルマシンで同じことを行います
  2. Preferences>Profilesに移動します。
  3. ローカルマシンの新しいプロファイルを作成します。ニーズに合わせてカスタマイズ(背景色、名前などを変更)
  4. Advancedタブに移動して、一番下までスクロールします。
  5. 自動プロファイル切り替えで、「+」をクリックしてローカルマシンのホスト名を追加します。ホスト名は、ターゲットマシンでecho $Hostを実行するときに取得するものです。 常にプロンプ​​トに表示されるわけではありません。
  6. 今回はリモートマシン用に別のプロファイルを作成し、カスタマイズします。
  7. Automatic Profile Switchingにリモートマシンのホスト名を追加します。
  8. これで、リモートマシンにsshすると、プロファイルが変更され、sshセッションからexitを終了すると、ローカルプロファイルに戻ります。

このソリューションを @ esodの回答 とシームレスに組み合わせることができます。
注:デフォルトのプロファイルを使用するのではなく、デスクトップ専用のプロファイルを作成するまで、機能しませんでした。

詳細は ドキュメント を参照してください。

11
Yohaï Berreby

ステップ1:

カスタムのitermプロファイル(例: darklight

ステップ2:

前にシェルプロファイルにコードを追加します(例:.bashrc or .zshrc

# Change iterm2 profile. Usage it2prof ProfileName (case sensitive)
it2prof() { echo -e "\033]50;SetProfile=$1\a" }

ステップ3:

あなたのプロフィールを理解する

exec $Shell -l

ステップ4:

itermテーマプロファイルを切り替える

it2prof dark
it2prof light
1
Mark Simon

私の場合、この機能を実装するには Yoha with Berrebyの回答 をホストの設定と組み合わせる必要があります。

  1. プロファイルの自動切り替えで、「+」をクリックし、ローカルマシンのホスト名を追加します。ホスト名は、ターゲットマシンでecho $ Hostを実行したときに取得するものです。プロンプトに常に表示されるものとは限りません。

私のステージングサーバーで$ Hostが設定されておらず、ホスト名は:

[devel@alveo-staging ~]$ hostname
alveo-staging

しかし、ホスト名をalveo-stagingとしてルールを設定することはできません。実際alveo-stagingは実際のホスト名(alveo-staging.xxx)のエイリアスであり、/etc/hostsで設定できます。 。

したがって、これに対する簡単な解決策は、*ワイルドカードを使用して、ルールを*staging*として設定することです。

その後、動作します。

0
karl li

これと同じ願いがあり、アプリケーションの設定のiTerm 2(Build 1.0.0.20130319)でこれを実行できることがわかりました。

次のようにして、デフォルトのプリセットとは異なるプリセットを使用してプロファイル(リモートプロファイルなど)を割り当てることができます。

[プロファイル]-> [プロファイルを開く]でプロファイルを選択し、[プロファイルの編集...]をクリックします。[色]タブに移動し、[プリセットのロード...]のリストからこのプロファイルのプリセットを選択します。

さらに、さまざまなプロファイルにキーのショートカットを設定して、1つのiTermウィンドウを別のウィンドウとは異なる外観にすることができます。私はこれをしました:

  1. 環境設定で新しいプロファイルを作成する
  2. 「プリファレンス」->「プロファイルを持つ新規ウィンドウ」のアクションを持つキーで、新しいプロファイルショートカットキーを作成する

デフォルトのプロファイルの背景は黒ですが、背景が白の場合に役立ちます。デフォルトプロファイルを複製し、新しいプロファイルにDefaultLightという名前を付けます。既定のプロファイルで、[キー]タブに移動し、キーボードショートカットが^ + cmd + nで、アクションが[新しいウィンドウとプロファイル]で、プロファイルがDefaultLightである新しいプロファイルショートカットキーを作成します。

設定を保存した後、cmd + nは黒い背景の新しいウィンドウを開き、^ + cmd + nは白い背景の新しいウィンドウを開きます。

さらに詳しく知りたい場合は、[キーボードショートカットキーの設定]に[プロファイル付きの新しいタブ]アクションがあります。

0
esod

Fishellユーザーの場合:1. fish関数を作成します。

functions it2prof > ~/.config/fish/functions/it2prof.fish

  1. このコンテンツを~/.config/fish/functions/it2prof.fishファイルに追加して保存:
function it2prof
  echo -e "\033]50;SetProfile=$argv\a"
end
  1. あなたのコマンドをお楽しみください:

it2prof whatever_profile_you_define

0
CK.Nguyen