将 Terminal.app 重定向到 iTerm.app

将 Terminal.app 重定向到 iTerm.app

是否可以将 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
  • ETC。

发生这种情况的示例:

  • BBEdit:单击“在终端中运行”
  • Alfred:创建一个 shell 扩展并关闭“静音”并运行它

答案1

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

这意味着每个调用终端的应用程序都将有一个用于设置包标识符的设置。有些应用程序可能对此进行了硬编码,而其他应用程序则应允许更改它,无论是通过首选项还是通过首选项列表设置。


如何让 BBEdit 使用另一个终端

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

defaults write com.barebones.bbedit Misc:TerminalBundleIDOverride "com.googlecode.iTerm2"

com.apple.Terminal只需用其他终端仿真器识别的捆绑包替换即可,例如com.googlecode.iterm2iTerm2。

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

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


如何让 Alfred 使用另一个终端

Alfred 的 shell 扩展使用终端仿真器指定,根据帮助

您可以选择使用 OS X Terminal.app 或 iTerm,以及 Alfred 偏好设置中的 Shell 命令前缀。

在此处输入图片描述

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

相关内容