在iTerm2中增加/减少字体大小


31

问题: 我在旅途中使用笔记本电脑,并在办公室时连接到外接显示器。鉴于外部监视器非常大,我需要在现有iTerm2窗口(通常是一个窗口)和所有选项卡中增加字体。
解决方法:Cmd-+对于在窗口中打开的每个选项卡(通常只有一个), 我将字体放大2-4倍(按)。

问题:是否有一种简单的方法可以自动为当前窗口的所有选项卡增加/减少字体大小?或者,如果要创建两个单独的配置文件,是否可以轻松地将某些配置文件应用于窗口中所有当前打开的选项卡?

Answers:


25

有一种非常糟糕的方法可以自动执行此操作,但是我还是会发布它。

您可以在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

请注意,它只是将文本(按字面意思)写入每个会话中,因此,如果您在其中一个选项卡中打开了一些文本编辑器-它将无法使用,并将echo命令粘贴到您的代码/配置文件中代替。如果您在其中一个选项卡中运行了ping命令-它也将不起作用。
您应该确保所有shell中都没有正在运行的交互式内容。

您还将在shell的历史记录中保留这些命令。您可以通过在命令本身之前添加一个空格来绕过它(例如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中进行的类似操作是还更改颜色预设(根据周围的光线而变暗和变光)。我想我也会为此创建一个单独的配置文件。
面包车

1
谢谢,@ Igor。尽管您提到这不是最干净的方法,但效果很好。您可以在常规首选项->“更改字体大小时调整窗口”中取消选中当字体大小更改时增加/减少窗口大小以调整大小的选项。
面包车

@van Haha,我完全错过了该选项,谢谢!
伊戈尔·哈塔里斯特

刚刚发现另一件事:如果我使用TmuxIntegration,则更改字体大小将在所有选项卡(tmux窗口/窗格)中起作用。颜色仍然只是每个窗格。
van
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.