Xcode:每个函数多个键绑定


12

在Xcode中,我希望能够为同一功能设置多个键绑定。例如,我希望step over函数同时映射到F6F16。我没有从Xcode本身看到实现此目的的方法。

有人知道这样做的方法吗?(我正在使用Xcode 4.2.1)

Answers:


4

我对您的问题进行了一些研究。在本地,似乎没有办法为同一功能指定多个快捷方式-我试图打开~/Library/Prefences/com.apple.dt.Xcode.plist文件并手动编辑为NSUserKeyEquivalents添加一个重复元素Step Over,但是在Xcode启动时,该重复元素会自动删除(自包装元素名为<dict>)。

本文的启发下,我发现了一种设置第二个快捷方式的大致方法。说明适用于OS X 10.8:

  1. System Preferences,在Accessibility使能下Enable access for assistive devices;
  2. 下载并安装Quicksilver,这是OS X的免费启动器;
  3. 将以下AppleScript保存到Documents文件夹(例如,使用name StepOver.scpt)-确保还复制¬字符。该脚本激活Xcode并选择Step Over功能。

    tell application "Xcode"
        activate
    end tell
    
    tell application "System Events" ¬
    to tell process "Xcode" ¬
    to click menu item "Step Over" ¬
    of menu "Debug" of menu item "Debug" ¬
    of menu "Product" of menu bar item "Product" ¬
    of menu bar 1
    
  4. 启动QuickSilver并导航至“首选项”->“触发器”->“自定义触发器”

  5. 创建一个新触发器,在其中StepOver.scpt使用所需的热键打开脚本(在我使用的屏幕截图中F10)。在“作用域”选项卡中,您可以指定触发器仅在Xcode中起作用。 触发例子
  6. 在这一点上,其他快捷方式应该可以工作,我已经在Xcode中构建了一个基本的控制台C ++应用程序,可以逐步使用F6(作为“标准”快捷方式)和F10(作为通过QuickSilver配置的其他快捷方式)使用。

最后,您还可以评估软件来创建诸如Keyboard Maestro之类的宏-这是商业用途,我还没有尝试过。


1
tell application "System Events" to tell process "Xcode" to click menu item "Step Over" of menu "Debug" of menu item "Debug" of menu "Product" of menu bar item "Product" of menu bar 1无需其他设置代码即可正常工作。
丹尼尔·贝克

感谢@DanielBeck,我对AppleScript不熟悉。我已经编辑了答案,并根据您的建议简化了这一部分-现在代码更易读了。
edymtt

这可行!设置有点复杂,但只花了2分钟左右。我认为我喜欢Quicksilver作为可以用于其他一些用途的工具。感谢您解决此问题!
joseph.hainline

0

您可以使用键盘快捷键映射器执行此过程,请参见附件图像。

在此处输入图片说明

我希望这可以帮助你


我真希望这能成功!当我尝试它时,只有F16键盘快捷键有效,而F6在XCode内不再起作用(它只是发出错误声音而不是执行任何操作)。系统级映射似乎会覆盖应用程序级映射。我正在使用XCode 4.5.2和OSX 10.8.2。这对您有用吗,您使用的是哪个版本?
joseph.hainline 2012年

嗨,很抱歉,这还不完整;请正确使用ctrl + f6,它将与f16一起使用,这是最好的,我想您可以道歉。
贾斯汀·埃尔斯韦

感谢您的尝试,但是我想我要找的东西根本不可能。Ctrl + F6是与F6不同的命令。当我在系统级别映射时,它仅覆盖应用程序级别。我实际上是在尝试将两个键同时映射到同一功能。
joseph.hainline

0

我使用Keyboard Maestro完成此操作。您可以将命令分配给一个或多个应用程序或全局应用程序。这是我无法缺少的出色软件。这是我买过的最好的软件。您会震惊地看到我有多少个键绑定。

附件是我将热键映射到菜单项的图像。忽略图像中显示为灰色的操作。它从“执行宏”开始。 菜单选择是您想要的操作

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.