web-dev-qa-db-ja.com

iTerm2でのフォントサイズの拡大/縮小

問題:外出先でラップトップを使用し、オフィスにいるときに外部モニターに接続します。外部モニターが非常に大きいので、既存のiTerm2ウィンドウ(通常は1つ)とすべてのタブのフォントを増やす必要があります。
回避策:ウィンドウ(通常は1つ)で開いているすべてのタブについて、フォントを2〜4倍に拡大します(Cmd-+を押すことにより)。

質問:現在のウィンドウのすべてのタブのフォントサイズを拡大/縮小する自動化できる簡単な方法はありますか?または、2つの個別のプロファイルを作成する場合、ウィンドウで現在開いているすべてのタブにいくつかのプロファイルを簡単に適用できますか?

35
van

これを自動化するための本当におかしくバギーな方法がありますが、とにかく投稿します。

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のウィンドウのサイズが大幅に変更されます。

しかし、繰り返しますが、それは本当にひどい方法です。

28
Igor Hatarist

現在のiTerm2(バージョン3.3.7)には、View>Size Changes Update Profileこれは問題を解決します:

プロファイルに関係なくフォントサイズを変更するには、スクリプトが提供されている このiTerm2の問題 を参照してください。

2
Borek Bernard