![如何为 Terminal.app 中的特定新窗口模板分配键盘快捷键?](https://linux22.com/image/1233220/%E5%A6%82%E4%BD%95%E4%B8%BA%20Terminal.app%20%E4%B8%AD%E7%9A%84%E7%89%B9%E5%AE%9A%E6%96%B0%E7%AA%97%E5%8F%A3%E6%A8%A1%E6%9D%BF%E5%88%86%E9%85%8D%E9%94%AE%E7%9B%98%E5%BF%AB%E6%8D%B7%E9%94%AE%EF%BC%9F.png)
我在 Snow Leopard 的 Terminal.app 中设置了一个模板,用于针对我使用的特定主机创建一个具有我喜欢的仿真设置的新窗口或选项卡。
我想为该模板分配一个键盘快捷键,以便我可以使用这些设置快速创建一个新窗口。
我尝试使用“键盘快捷键”系统偏好设置窗格来执行此操作。我可以将快捷键分配给 MyTemplate 子菜单,但当我尝试使用它时它不起作用。我怀疑是因为 MyTemplate 列在多个子菜单中——一个用于新窗口,一个用于新选项卡。
如何为我的新模板分配键盘快捷键?
PS. 我并不想更改我的默认 (cmd-N) 模板。
答案1
打开 Automator,使用以下内容创建一个新服务运行 AppleScript动作(无输入):
tell application "Terminal"
activate # switch to Terminal, launch if necessary
tell application "System Events"
keystroke "t" using command down # open a new tab
end tell
set current settings of selected tab of front window to first settings set whose name is "MyTemplate" # switch settings to your template
end tell
该服务可通过服务菜单,您可以在系统偏好设置 » 键盘 » 键盘快捷键 » 服务
编辑添加:您可以通过指定是否希望此服务在全球范围内运行任何应用程序或者终端在 Automator 中。两者都使用此代码,它只是确定服务出现在哪些应用程序中。
答案2
您可以将设置保存到 .term 文件中,然后使用第三方启动器(Quicksilver?)从那里启动它。
答案3
我认为您的怀疑是正确的,多个子菜单中的相同项目是问题所在。当字符串唯一时,我已将键盘快捷键分配给子菜单项,没有任何问题。
因此,一种方法是完全删除“新选项卡”菜单项。尝试编辑定义菜单的用户界面元素。
使用 plutil 和命令行使已编译的 NIB 可编辑,或者网上有一些关于将已编译的 NIB 复制到使用未编译的 NIBS 的应用程序中然后使用 Interface Builder.app 的提示。