Xcode 4 idekeybindings为一次击键提供多个命令
正在拼命地定制Xcode 4键绑定 我正在编辑user.idekeybindings文件(xcode有时会在打开时修改该文件,然后尝试通过key bindings接口进行更新时将其清除-可爱) 我的理解是,提供一组命令(选择器)而不是一个字符串应该执行所有这些命令Xcode 4 idekeybindings为一次击键提供多个命令,xcode,xcode4,Xcode,Xcode4,正在拼命地定制Xcode 4键绑定 我正在编辑user.idekeybindings文件(xcode有时会在打开时修改该文件,然后尝试通过key bindings接口进行更新时将其清除-可爱) 我的理解是,提供一组命令(选择器)而不是一个字符串应该执行所有这些命令 <key>Text Key Bindings</key> <dict> <key>Key Bindings</key> <dict>
<key>Text Key Bindings</key>
<dict>
<key>Key Bindings</key>
<dict>
<key>@L</key>
<string>selectLine:</string>
<key>@d</key>
<array>
<string>selectLine:</string>
<string>deleteBackward:</string>
</array>
</dict>
<key>Version</key>
<integer>3</integer>
</dict>
文本键绑定
按键绑定
@L
选择行:
@d
选择行:
向后删除:
版本
3.
在这种情况下,我的selectLine:for命令-shift-l可以正常工作
我的command-d向我发出嘟嘟声,但失败了。如果我删除数组中的任一命令,但将其留在数组中,则该命令有效(不管是哪个命令)。但一旦我把它们结合起来,它就惨败了
有人知道我做错了什么吗?缺少关于如何实现这一点的知识令人沮丧。仅仅因为可以向xml结构中添加一个包含两个函数的数组,并不意味着Xcode在解析文件时正在查找它
如果读取文件的代码检查了值是数组还是字符串,然后执行了一些循环,这将按照您认为应该的方式运行。我猜Xcode正在读取与键相关的值,看到它不是一个字符串,然后用那美妙的嘟嘟声为您唱小夜曲。您想要做的是完全可能的。(至少在XCode 10中,这是我在撰写本文时使用的代码) 不要将命令放入数组中:
<array>
<string>selectLine:</string>
<string>deleteBackward:</string>
</array>
选择行:
向后删除:
只需将它们放入一个字符串条目中,并确保它们以逗号分隔,如下所示:
<string>selectLine:, deleteBackward:</string>
selectLine:,deletebackup:
干杯 您以前可以使用XCode 3实现这一点。我不是凭空说出来的。:)当我有一个包含1个命令的数组时,它会读取并执行它。当我向数组中添加第二个命令时,它会阻塞。虽然Xcode 4支持Xcode 3文件,但它是为Xcode 4重写的。如果你有一个项目文件只与两个项目文件中的一个一起工作,我会提交一个bug。项目文件?这与这里的问题无关。@Bob My bad,但这并没有改变任何事情,它仍然是一个重新实现的遗留格式。我不想让苹果的法律部门来找我,所以我故意不去深入研究问题的细节。我花了一个夏天在Xcode 4上工作;