English | 中文说明
OpenInTerminal-Lite English | OpenInTerminal-Lite 中文说明
核心功能 | OpenInTerminal |
---|---|
在终端(或编辑器)中打开目录或文件 | ![]() |
在自定义应用中打开(以 GitHub Desktop 为例) | ![]() |
功能 | OpenInTerminal | OpenInTerminal-Lite & OpenInEditor-Lite |
---|---|---|
支持 终端, iTerm, Hyper, Alacritty 和 kitty | ✅ | ✅ |
支持 文本编辑, Visual Studio Code, VSCode Insiders, Atom, Sublime Text, VSCodium, BBEdit,TextMate,CotEditor,MacVim, JetBrains(AppCode, CLion, GoLand, IntelliJ IDEA, PhpStorm, PyCharm, RubyMine, WebStorm, Android Studio) 和 Typora | ✅ | ✅ |
打开自定义应用( |
✅ | ✅ |
支持中文,英语,法语,俄语,意大利语,西班牙语,土耳其语和德语 | ✅ | ✅ |
图形化设置界面 | ✅ | ❌ |
支持键盘快捷键 | ✅ | ❌ |
选择哪个?如果你喜欢更强大的功能和图形化设置界面,那么你可以选择 OpenInTerminal
。如果你仅仅需要更快速且更稳定地打开终端或编辑器,那么你可以选择 OpenInTerminal-Lite
。
对于我而言,我更喜欢 OpenInTerminal-Lite
,它只需要点击一次来完成功能(另一个需要点击两次😂),而且它更轻量一些。
对于 OpenInTerminal-Lite
用户:
brew install --cask openinterminal
- 从 release 中下载。
- 将应用移动到
应用程序
文件夹。
⚠️ 当您第一次运行应用程序时,macOS 将要求访问访达
和终端
(或iTerm
)的权限。请给予应用程序权限。
打开 OpenInTerminal 应用。去 系统偏好设置
-> 扩展
-> 访达扩展
,打开下图中的权限按钮。
感谢各位的支持!
通过 GitHub Sponsors 支持 💖。
PayPal | 支付宝 | 微信 |
---|---|---|
paypal.me/ji4ning | ![]() |
![]() |
1. OpenInTerminal 和 OpenInTerminal-Lite 的区别是什么?
OpenInTerminal 目前有正常版和 Lite 版。如果你仅仅需要打开终端而且不需要应用一直常驻后台,那么你可以选择 Lite 版。如果你喜欢更强大的功能,那么你可以选择正常版。
2. 我不小心点了不授权的按钮
你可以运行以下命令。这会重置系统设置里的权限。
tccutil reset AppleEvents wang.jianing.app.OpenInTerminal
3. 路径里的特殊字符
请不要在路径中使用反斜线 \
和双引号 "
。
4. 在 Mojave 上打开了两个终端窗口
这个问题只发生在第一次启动终端的时候。所以,你可以通过 ⌘W
来关闭终端的窗口,而不是用 ⌘Q
来退出终端。
5. 访达扩展不工作
访达扩展目前完全依赖于 AppleScript 以便于能够独立运行。所以很难保证它的稳定性。当你发现访达扩展不能正常工作的时候,你需要按住 Option(⌥)
键,右键点击访达并选择 重启
。
如果你的 Mac 型号比较老,建议取消在上下文菜单中显示图标。如果访达扩展仍旧频繁崩溃,强烈建议使用 OpenInTerminal-Lite
6. OpenInTerminal 并不按照我的预期来工作
OpenInTerminal 将会按照以下顺序来打开终端或编辑器:
- 1. 打开你所选中的文件或文件夹。
- 2. 打开最上面的访达窗口。
- 3. 都不是。那么打开桌面。
例如,当你在下面的访达窗口中选中了一个文件而你想打开最上面的访达窗口到终端中,按照上面的顺序,这将不会按照你所预期的来工作。
问:我右键点击了桌面,但是没有打开终端或者编辑器。但是状态栏菜单里的功能却能正常运行。
答:选中一个文件(文件夹)或者打开一个访达窗口。因为当你右键点击桌面的时候,没有任何东西是被选中的状态,所以系统并不能把选中文件的路径提供给程序使用。在这种情况下,程序将不能正常工作。
目前访达扩展和状态栏菜单中的功能并不是同一种方式来实现的。访达扩展为了能够独立运行,现在完全基于 AppleScript。然而状态栏菜单中的功能的实现方式还和以前一样。所以它们会有不同的表现行为。这个问题会在未来得到改进。
7. OpenInTerminal 的实现机制以及为什么会有两个版本
有两种方法可以实现“打开终端”。
- 1. ScriptingBridge。它比第二种方式更快更稳定,尽管两者差异很小。
OpenInTerminal-Lite
和OpenInTerminal
中的状态栏菜单操作都是基于这种方式的。它的缺点是使用 ScriptingBridge 访问用户目录信息或其他内容的应用程序不能是沙盒的。 - 2. AppleScript。为了能够独立运行,
OpenInTerminal
的访达扩展完全依赖 AppleScript。第一种方法不能应用于访达扩展,因为它必须是沙盒的。
有些人希望 OpenInTerminal 快速且稳定(精简版),而另一些人希望 OpenInTerminal 功能强大且易于配置(普通版)。有些人希望 OpenInTerminal 能够自动适配黑暗模式(普通版),而另一些人只想一键打开终端(精简版)。
当一个版本不再满足这些需求时,OpenInTerminal 在几个月之前分化为普通版和精简版。
(顺便说一句,我知道有些应用程序是沙盒化的,并且可以达到和 OpenInTerminal 相同的效果。但是我不知道它是怎么实现的。如果有人知道它并愿意与我交谈,那就太好了。我非常愿意使 OpenInTerminal 变得更加完美,以至于一个版本就足够了。😀)
8. 我的自定义应用不工作
如果你的自定义应用不能通过运行以下命令正常运行,那么该应用不支持通过 OpenInTerminal 打开。例如,GitHub Desktop:
open -a GitHub\ Desktop ~/Desktop
感谢所有的贡献者。你们的付出让 OpenInTerminal 更棒了。