将 Terminal.app 重定向到 iTerm.app

Tyi*_*ilo 6 terminal iterm macos

是否可以将 Mac OS X 中的应用程序重定向到另一个应用程序?

如果没有,您能否将 Terminal.app 重定向到 iTerm.app,以便每个想要打开终端窗口的应用程序都打开一个 iTerm 窗口。

例如,当某事运行时:

  • tell application "Terminal" 在 AppleScript 中
  • open -a Terminal
  • open -a /Applications/Utilities/Terminal.app
  • /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal
  • open -b com.apple.terminal
  • 等等。

发生这种情况时的示例:

  • BBEdit:单击“在终端中运行”
  • 阿尔弗雷德:创建一个外壳扩展并关闭“静音”并运行它

slh*_*hck 5

正如上面的评论中所说,您将无法大规模更改它。调用 Terminal.app 的应用程序将通过调用其 Bundle 标识符com.apple.terminal. 您必须将其更改为“伪造”终端并重定向到另一个终端。这可能吗?我非常怀疑。

这意味着每个调用终端的应用程序都将具有所使用的包标识符的设置。有些人可能会硬编码,其他人应该允许通过首选项或首选项列表设置更改它。


如何让 BBEdit 使用另一个终端

对于 BBEdit,根据发行说明,这相对容易。不过,这是针对 8.7 版的,我再也无法在 10 版的“专家首选项”中找到它了。也许他们已经删除了该功能。

defaults write com.barebones.bbedit Misc:TerminalBundleIDOverride "com.googlecode.iTerm2"
Run Code Online (Sandbox Code Playgroud)

只需替换com.apple.Terminal为其他终端仿真器标识的包,例如com.googlecode.iterm2iTerm2。

可以在secrets.blacktree.com上找到类似的条目,尽管它似乎不起作用(我从未在 中看到-bundleid数据类型defaults)。

最好的主意是向 BBEdit 的开发人员提出支持请求。


如何让阿尔弗雷德使用另一个终端

根据帮助,Alfred 的 shell 扩展使用指定的终端模拟器。

您可以选择使用 OS X Terminal.app 或 iTerm,以及您在 Alfred 首选项中的 Shell 命令前缀。

在此处输入图片说明

一开始它对我不起作用,所以我不得不删除 iTerm.app,删除 Alfred 及其首选项/缓存,然后重新安装 iTerm2。这在Alfred 支持论坛中进行了解释。