将iTerm2设置为默认终端(OSX Lion)


61

我想将iTerm2而不是terminal.app设置为默认终端。

例如,使用Go2Shell可以在Finder中打开一个指向当前目录的终端。我想让我能够使用terminal.app的iterm2 instad。

我没有在官方文档中找到任何答案。

谢谢你的帮助。

更新:ShellTo是Go2Shell的绝佳替代品,并支持iTerm2


默认终端是什么?您只要启动想要的一个,而让另一个呆着……?请更详细地说明您的要求。
丹尼尔·贝克

1
App Store上的Go2Shell blurb:添加了对iTerm,iTerm 2甚至xterm :)的支持。只要看看它的喜好。另外,至少对于Terminal.app而言,此功能已成为操作系统的一部分,请参见此处(最后一项)。
丹尼尔·贝克

哦,我没看到。我的错!
politicus 2012年

Answers:


58

Terminal.app宣布自己的处理程序sshtelnet以及x-man-pageURL方案。

它还将文件扩展名.term(会话),.terminal(设置).tool.command(脚本)及其自身注册为这些文件的编辑器/查看器。

除此之外,OS X中没有默认终端。它只是一个可以处理URL方案和文件类型的应用程序。


除Terminal.app特定于.term/ 以外,iTerm能够处理所有这些内容.terminal

对于文件类型,只需打开“ 获取信息”对话框,然后将所有此类文件与iTerm关联。对于URL方案,您可以下载并安装首选项窗格“ 默认应用”,然后在此处更改关联。您也可以将其用作更改文件类型关联的替代方法。

在此处输入图片说明


所有这些设置都是用户特定的,并存储在中~/Library/Preferences/com.apple.LaunchServices.plist。您当然可以自己在合适的编辑器中进行编辑。这很简单。的Xcode 4的屏幕截图示出了改变的结果x-man-page默认应用偏好窗格:

在此处输入图片说明


Terminal.app还为其他应用程序提供以下服务

  • 文件夹中的新终端
  • 文件夹中的新终端标签
  • 在终端中打开手册页
  • 在终端中搜索手册页

与Terminal.app的关联是硬编码的。您需要创建自己的服务,例如使用Automator和/或AppleScript替换它们。


如果Terminal通过其AppleScript API使用,则无法在所有情况下仅将其替换为iTerm,因为它们的API完全不同。这通常需要对执行此操作的程序或脚本进行实质性更改。


2
感谢您的惊人回答。清晰,内容丰富。OSX的新手,我不知道默认应用程序。
politicus 2012年

很棒的工具。很高兴它在El Capitan领导下仍然运作良好。
ifwdev '16

哦,天哪,这很有帮助。我不小心删除了Terminal.app(或将其拧得很烂,以至于无法打开),并且可以解决该问题,而我的React Native版本到目前为止使用iterm的效果还不错,请敲木头。THX:D
tidelake

64

您应该能够iTerm.app通过从菜单栏中选择“默认设置”来设置默认终端。

文件菜单下拉

或者,您可以使用键盘快捷键。

+ + +\


1
对于我的大多数测试而言,它似乎都不起作用。GitHub.app仍然打开Terminal,SublimeText也是如此。
fregante

5
@ bfred.it:可悲的是,菜单项的名称具有误导性:它唯一要做的就是在iTerm2中而不是Terminal中运行从Finder打开的shell脚本。正如丹尼尔·贝克(Daniel Beck)的回答所述,这不会神奇地导致第三方应用程序(例如GoShell,GitHub,Alfred等)使用iTerm2 。
mklement0 2016年

我认为这是当今最合适的答案……
mecampbellsoup

7

如以上注释中所述,可以告诉Go2Shell使用iTerm2

要打开配置窗口,请按照以下步骤操作:

  1. 启动您喜欢的终端程序。
  2. 输入:open -a Go2Shell --args配置
  3. 按[返回]。

在此处输入图片说明

http://zipzapmac.com/Go2Shell


6

正如ma.ttias.be博客上所发现的那样,iTerm2可以将自己注册为某些常见URL方案的默认终端:您只需从iTerm偏好设置中检查当前配置文件“常规”选项卡最底部的相应方案即可。

iTerm>Préférences>配置文件>Général> URL方案


最关键的是回答IMO。
markus

5

提供现有答案实用摘要

  • macOS(OS X)不支持默认终端的概念

    • 有关背景信息,请参见Daniel Beck的有用答案
    • iTerm2本身在某种程度上误导了提供一个名为iTerm2 > Make iTerm2 Default Term(如Halfcube的答案所示的菜单项,但是唯一要做的是使Finder运行在iTerm2中从其打开的外壳脚本(更具体地说,它将shellUTI 的角色分配public.unix-executable给Finder)- 不是典型的用例。
  • 因此,应用程序必须单独配置为使用iTerm2而不是终端,如果他们支持

    • 虽然提示OP问题的Go2Shell应用程序确实具有一个支持iTerm2(的配置对话框,但自OSX 10.11.6起open -a Go2Shell -- config,该应用程序似乎根本无法工作(从v2.23起单击工具栏按钮,这是唯一的即使单击,也不会出现配置对话框Install Go2Shell to Finder
    • OP所提到的付费替代方案-应用程序ShellTo- 原则上也支持iTerm2 ,但是截至本文撰写时,尚不支持当前版本v3 +。

1

@gef发布的内容部分是我所做的。但是,这对我有用。

打开您的终端应用程序:

open -a Go2Shell --args config

然后在选项上复制以下代码,由于命令受限制,您可能必须右键单击并粘贴:

cd %PATH%;clear;pwd;open -a iTerm.app .;killall Terminal;

瞧,终端应用程序应该打开,给iTerm赋予一个新参数,然后再次关闭自身。


0

该线程用于OS X Lion,对于El Capitan而言似乎已过时。但是,由于我在搜索XCode启动iTerm而不是Terminal的方法时找到了此页面,因此我认为我应该发布解决方案。

不幸的是,它不是免费的,但是可以使用Magic Launch系统首选项应用程序来完成。使用该工具,我设置的iTerm作为默认的应用程序.term.terminal.command扩展。那满足了我的需要。

希望这可以帮助!


您能否扩展一下该软件的工作方式?请参阅如何推荐软件
Burgi

您是说我的答案不再适用于El Capitan吗?你能澄清一下吗?
丹尼尔·贝克

0

您可以在终端应用程序运行后运行任何命令,因此为了运行iterm2而不是终端应用程序,您可以创建一个脚本,该脚本在每次打开终端时运行,此脚本应打开iterm并终止终端应用程序

创建脚本的步骤

  • Vi /应用程序/run_iterm.sh
  • 复制以下命令并将其粘贴到脚本中

    #! /bin/bash
    open -a iTerm.app
    killall Terminal
    
  • 保存文件

  • Chmod 755 /应用程序/run_iterm.sh

现在我们的脚本已经准备好了,最后一步是每次打开终端应用程序时运行它。运行终端转到首选项->常规->使用->选择命令“完整路径”打开shell并粘贴/Applications/./run_iterm。在教科书内最后关闭终端应用程序,然后再次运行它, 在此处输入图像描述


1
哇; 配置程序以在启动时自动杀死自己。可能出什么问题了?:-(⁠–
斯科特,
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.