【问题标题】:Custom key bindings Xcode 4?自定义键绑定 Xcode 4?
【发布时间】:2011-08-03 08:43:47
【问题描述】:

不久前我问了一个关于custom key bindings in Xcode 的问题。我最终在 Xcode 中重新创建了一些 TextMate's key commands。刚刚更新到 Xcode 4,PBKeyBinding 文件似乎不再有任何效果。自定义键绑定的新热点是什么,特别是对于 Xcode 4?

【问题讨论】:

  • 我在这个问题上加了 100 分赏金,希望有人知道任何解决方案。我已经在 AskDifferent 上提出了一个类似的问题......并且通过那里的答案,我在这里找到了自己的方式。 apple.stackexchange.com/questions/22674/…

标签: objective-c xcode xcode4


【解决方案1】:

转到 Xcode 4 > Preferences > Key Bindings 并随心所欲地摆弄它们。 :)

【讨论】:

【解决方案2】:

现在的答案似乎是使用idekeybindings 文件——这些文件与您在首选项中创建的自定义键盘快捷键集相关联——存储在~/Library/Developer/Xcode/UserData/KeyBindings/。更多信息可以在Key Bindings Preferences Help 中找到。然而,听起来人们没有运气尝试在一个键盘快捷键下组合多个操作(就像您可以使用旧式键绑定 dict 文件一样)。 但大概你仍然可以在DefaultKeyBinding.dict 中执行此操作,只要您不介意该快捷方式也可以在其他应用程序中使用 :) 如果这不起作用,我认为您已经退出了现在运气。对不起; file a bug!

【讨论】:

  • 不幸的是,DefaultKeyBinding.dict 中的键绑定对 Xcode 的编辑器没有影响。 Xcode 完全忽略了这些,支持它自己的键绑定系统。 (我知道这要感谢您在 AskDifferent 上的回答,向我展示了如何做到这一点,并得到问题中引用的线程的支持:stackoverflow.com/questions/476953/xcode-delete-line-hot-key)您说:“人们运气不佳”,但我发现他们没有一点运气都没有 (stackoverflow.com/questions/5975026/…)。
  • 是的,前几天我在这些上花了几个小时。我以为我可以在 idebindings 中定义自己的绑定,但 idebindings 实际上是 IDE 在您更改首选项菜单中的键命令时 写入 的内容。我将这个问题称为 WONTFIX,因为 Apple 刚刚决定删除自定义键绑定,并且它们不再遵守系统范围的绑定。哼哼!!
  • @Steve 你有没有更多的运气?
  • 有点。但是我还没有时间提出一个工作演示(本周被猛烈抨击)。 Mac App Store 上有一个很酷的应用程序,叫做“Keymando”,它通过一个简单构建的 Ruby 脚本,允许您创建在 Xcode 中工作的键绑定。 “内置”功能之一是它能够将单个按键转换为多个按键发送。我已经验证了该应用程序在 Xcode 4 中工作......所以我非常希望我可以将我想要的单个击键转换为在 Xcode 中完成任务所需的多个击键。
  • 键绑定在 Xcode 5 中工作得非常好,一旦你知道如何去做。是的,有一个位于/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/IDETextKeyBindingSet.plist 的私有键绑定文件,您必须使文件和父文件夹都可写,这通过finder 的信息对话框很容易。格式如上文所述的 atommclain 字符串。但从那时起,一切都运行良好,使用 NSResponder 的相同命令,就像我们在 DefaultKey.dict 中使用的命令一样,您必须在编辑后重新绑定键。
【解决方案3】:

您可以使用Keymando 在 Xcode 4 和任何其他 OSX 应用程序中创建您喜欢的任何键绑定。

【讨论】:

  • 我试过这个应用程序,它像宣传的那样工作。它真的很整洁。正是我想要的。
  • 将此标记为选定答案,因为这是我找到的唯一解决方法!
  • 这是否允许您将多个键命令串在一起?我很快就买了,然后意识到这可能不是我所希望的。 --更新--确实如此!就像这样:只有 /Xcode/ 做 map '', "" "" end
【解决方案4】:

是的,可以做到(至少目前是这样)。在花了一天的大部分时间搜索、试验和挖掘 /Developer 的碗之后,我终于想出了如何实现这一点。

打开位于/Developer/Library/PrivateFrameworks/IDEKit.framework/Resources/IDETextKeyBindingsSet.plist

此绑定 plist 的格式与整个系统中使用的其他绑定不同,最重要的区别是所有方法必须列在同一个字符串中,即 <string>moveToBeginningOfParagraph:, insertText:, foo</string>

编辑: 我没有对此进行测试,但看起来 Xcode 中的新位置是 Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist

【讨论】:

  • insertText: 被这样解析的事实真是太棒了!这也适用于 Xcode 5。这是插入 doxygen 注释的绑定: moveToBeginningOfParagraph:, insertText:, /*!, insertNewlineIgnoringFieldEditor:, insertNewlineIgnoringFieldEditor:, insertText:, */, moveUp: 我觉得这很有用,我已将其绑定到 cmd ctl 7
  • 看来这个文件夹已经在 Xcode 7 中移动了。知道新位置是什么,或者这仍然有效吗?
【解决方案5】:

在这里http://www.codedojo.com/?p=580
你使用这个绑定集

下载 http://www.codedojo.com/files/MSVC_xcode_config.zip

解压并将MSVC.pbxkeys放入YourUserName/Library/Developer/Xcode/userdata/keybindings 并将其重命名为 msvc.idekeybindings

然后从

Xcode -> 首选项 -> 键绑定

只选择msvc

【讨论】:

    猜你喜欢
    • 2012-03-16
    • 1970-01-01
    • 1970-01-01
    • 2019-11-16
    • 1970-01-01
    • 1970-01-01
    • 2019-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多