我希望有一个键盘快捷键,无论我身在何处,都可以打开一个新终端。如果默认主目录中有一个默认 shell,那就太好了。我尝试了一段时间来实现这一点,但到目前为止还没有成功。我尝试过的方法:
1) syspref -> 键盘 -> 快捷方式 -> 服务,选择“文件夹中的新终端”。结果:它只是发出哔哔声,什么也没做
2) syspref -> 键盘 -> 快捷方式 -> 应用程序快捷方式 -> 创建一个链接到“终端”应用程序的新项目。结果:发出哔哔声,什么也不做
3)从自动程序中创建一个不接受任何输入的新服务并启动“终端”,从键盘快捷菜单绑定新服务。(遵循这些说明)。这种方法有效,但只在某些时候有效(见更新)
我究竟做错了什么 ?
更新
解决方案 3 可行,但它有两个缺点:
- 它只在某个窗口处于焦点状态时才有效,如果您没有任何窗口或当前没有窗口处于焦点状态,它将无法工作。此外,即使某个窗口处于焦点状态,它显然也必须是正确的窗口类型,例如,出于某种原因,如果 chrome 处于焦点状态,它就无法工作,但如果 gvim 处于焦点状态,它就可以工作,WTF?。
- 如果终端窗口已经打开,它将仅聚焦现有终端并将其置于顶部,我希望出现一个新的、新鲜的终端窗口(好吧,我想我可以只执行 ctrl-command-t 来使其聚焦,然后执行 control-n 来打开新窗口,但这有点糟糕)
答案1
您可以创建这样的服务:
然后从系统偏好设置中为其提供快捷方式。
在运行 Automator 服务之前可能会有 0.1 - 1 秒的延迟,至少在我安装的 10.7 和 10.8 中,服务的快捷方式并不总是有效,直到我将鼠标悬停在菜单栏中的服务菜单上。您也可以使用快速脚本为脚本分配快捷方式,或使用私有文件像这样KeyRemap4MacBook:
<?xml version="1.0"?>
<root>
<vkopenurldef>
<name>KeyCode::VK_OPEN_URL_SHELL_TERMINAL</name>
<url type="shell">osascript -e 'tell app "Terminal"' -e 'do script ""' -e activate -e end</url>
</vkopenurldef>
<item>
<name>test</name>
<identifier>test</identifier>
<autogen>__KeyToKey__ KeyCode::F5, ModifierFlag::NONE, KeyCode::VK_OPEN_URL_SHELL_TERMINAL</autogen>
</item>
</root>
如果其他人寻找一种方法来打开终端并且仅在没有现有窗口时创建一个新窗口,则您可以将这样的 private.xml 与 KeyRemap4MacBook 一起使用:
<?xml version="1.0"?>
<root>
<vkopenurldef>
<name>KeyCode::VK_OPEN_URL_TERMINAL</name>
<url>file:///Applications/Utilities/Terminal.app</url>
</vkopenurldef>
<item>
<name>test</name>
<identifier>test</identifier>
<autogen>__KeyToKey__ KeyCode::F5, ModifierFlag::NONE, KeyCode::VK_OPEN_URL_TERMINAL</autogen>
</item>
</root>
或者如果你已经购买了 Alfred 2 的 Powerpack,你可以创建如下工作流程:
答案2
有一个错误会阻止新分配的键盘快捷键工作,除非您查看应用程序中的服务子菜单。可惜的是,该解决方法不适用于终端服务,因为它们从不出现在服务子菜单中 - 它们只出现在上下文菜单中。
对于其他服务,另一种解决方法是通过应用快捷方式而不是服务为菜单项分配一个键(两者都位于键盘系统偏好设置面板的快捷方式选项卡中)。但是,尽管快捷方式出现在 Finder 的上下文菜单中,并且即使在菜单可见时也能正常工作,但除非您正在查看上下文菜单,否则它不起作用。
答案3
1)应该可以工作,但文件夹必须已选择(聚焦)。仅仅处于文件夹中并且未选择任何内容(或常规文件)是不够的。
在查找器中选择一个文件夹,如果您激活了下面的复选框,Syspref > Keyboard > Shortcuts > Services > new terminal at folder
您还可以看到菜单项Finder > Services
。
可以在 Automator 中创建 Terminal.app(或任何其他应用程序)的简单快捷方式:
创建新服务,选择没有输入在服务接收,添加启动程序操作并选择 Terminal.app。现在保存服务并转到System Preferences > Keyboard > Shortcuts > Services
,刚刚创建的服务应出现在底部,其名称与您保存时的名称相同。添加键盘快捷键,然后您可以使用它从任何应用程序启动终端。