Answers:
有一种非常糟糕的方法可以自动执行此操作,但是我还是会发布它。
您可以在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的窗口会显着调整大小。
但是,这又是一种很糟糕的方式。