問題:外出先でラップトップを使用し、オフィスにいるときに外部モニターに接続します。外部モニターが非常に大きいので、既存のiTerm2
ウィンドウ(通常は1つ)とすべてのタブのフォントを増やす必要があります。
回避策:ウィンドウ(通常は1つ)で開いているすべてのタブについて、フォントを2〜4倍に拡大します(Cmd-+
を押すことにより)。
質問:現在のウィンドウのすべてのタブのフォントサイズを拡大/縮小する自動化できる簡単な方法はありますか?または、2つの個別のプロファイルを作成する場合、ウィンドウで現在開いているすべてのタブにいくつかのプロファイルを簡単に適用できますか?
これを自動化するための本当におかしくバギーな方法がありますが、とにかく投稿します。
ITerm2の設定([プロファイル]ペイン)で新しいプロファイルを作成できます。 「LargeFont」としましょう。 ⌘=を押すと、デフォルトからクローンできます。
新しく作成したプロファイルのテキストペインに表示するフォントサイズを設定します。
今ここにトリックがあります。 AppleScriptを使用してターミナルセッションのフォントサイズやプロファイルを変更することはできません(少なくとも方法はわかりません)が、AppleScriptを使用してすべてのセッションでコマンドを実行でき、iTerm2にはカスタムエスケープシーケンスがあります。 echo
されたセッションのプロファイルの変更をサポートします。
したがって、それを実行できます:
echo -e "\033]50;SetProfile=LargeFont\a"
開かれたすべてのセッションで、ターミナルのプロファイルを「LargeText」に変更します。
これで、AppleScriptを使用して、開いているすべてのセッションの実行を自動化できます。
tell application "iTerm"
repeat with theTerminal in terminals
tell theTerminal
repeat with theSession in sessions
tell theSession
write text "echo -e '\\033]50;SetProfile=LargeText\\a'"
end tell
end repeat
end tell
end repeat
end tell
各セッションにテキストを(文字どおりに)書き込むだけなので、タブのいずれかでテキストエディターを開いている場合は機能しないことに注意してください。エコーコマンドはコード/構成ファイルに貼り付けられます。代わりに。いずれかのタブでpingコマンドを実行している場合-動作しません。
シェルでインタラクティブなものが実行されていないことを確認する必要があります。
また、これらのコマンドはシェルの履歴に残ります。コマンド自体の前にスペースを追加することでそれをバイパスできます(echo -e ...
など)。これは少なくともzshでは機能します。
これがzsh関数です:
function iterm_change_profile() {
osascript -e "
tell application \"iTerm\"
repeat with theTerminal in terminals
tell theTerminal
repeat with theSession in sessions
tell theSession
write text \" echo -e \\\"\\\\033]50;SetProfile=$1\\\\a\\\"\"
end tell
end repeat
end tell
end repeat
end tell"
}
だからあなたはそれをそのように使うことができます:
iterm_change_profile LargeFont
また、欠点もあります。プロファイルをフォントの大きいものから小さいものに変更すると、iTermのウィンドウのサイズが大幅に変更されます。
しかし、繰り返しますが、それは本当にひどい方法です。
現在のiTerm2(バージョン3.3.7)には、View>Size Changes Update Profileこれは問題を解決します:
プロファイルに関係なくフォントサイズを変更するには、スクリプトが提供されている このiTerm2の問題 を参照してください。