如何在Xcode 8中创建删除行键盘快捷键?Xcode 3解决方案不再有效
在以前版本的如何在Xcode 8中创建删除行键盘快捷键?Xcode 3解决方案不再有效,xcode,macos,xcode4,xcode8,keyboard-shortcuts,Xcode,Macos,Xcode4,Xcode8,Keyboard Shortcuts,在以前版本的Xcode中,可以创建一个键绑定来删除当前行。有不同的解决方案,下面举例说明: 所有解决方案都包括修改以下文件之一: ~/Library/Application-Support/Xcode/Key-Bindings/*.pbxkeys ~/Library/KeyBindings/DefaultKeyBinding.dict ~/Library/KeyBindings/PBKeyBinding.dict Xcode 4中现有快捷方式的一个好资源是。有许多关于删除的列表,但没有关
Xcode
中,可以创建一个键绑定来删除当前行。有不同的解决方案,下面举例说明:
所有解决方案都包括修改以下文件之一:
~/Library/Application-Support/Xcode/Key-Bindings/*.pbxkeys~/Library/KeyBindings/DefaultKeyBinding.dict
~/Library/KeyBindings/PBKeyBinding.dict
Xcode 4
中现有快捷方式的一个好资源是。有许多关于删除的列表,但没有关于“删除行”的列表
但是,这些解决方案不起作用,因为Xcode 4
更新:
问题仍然与Xcode 5.1.1的问题相同
更新:
问题仍然与Xcode 6.1 GM Seed 2的问题相同
更新:
截至2016年4月26日,仍然适用于Xcode 7.3版(7D175)
更新:
六年后,Xcode 8.3有了一个内置的解决方案。请参阅下面的答案。看起来XCode现在使用的是plist文件而不是dict文件,新格式不支持向密钥绑定添加多个命令。似乎也没有一种方法可以添加自定义命令来绑定到其中任何一个。我发现让某些东西工作的唯一方法是为单独的操作设置一个键绑定,例如
^D
用于deleteToEndOfLine:
,然后^L
用于MoveToBeginingOffline:
,为您提供^L+^D
以获得综合效果。如果您不介意在其他应用程序中使用该密钥绑定,您可以尝试在常规Cocoa密钥绑定中设置它。有一个解释。似乎现在做不到。。。如果我错了,请随时纠正我。。。但这是我的新解决方案
转到xcode首选项,然后转到键绑定选项卡。复制默认设置,这样当我提出的建议破坏了您将使用的内容时,您就不会对我生气
查找两个相邻且不用于您使用的任何命令的键。。。“;”,“'”也许吧。(我对新文件不使用命令n,所以我选择了n,m)
将第一个键设置为“移动到行乞”,第二个键设置为“删除到行尾”
然后使用该序列删除一行
alternate将设置一些内容以选择行,然后使用delete。在这里和那里进行了大量搜索之后,我得出了以下解决方案: 按住控制键,然后按AKK (注意:第二个K删除空行) 实际上,它是两个命令的组合:
移动到段落开头
&删除到段落结尾
。您还可以使用/设置其他键,也可以使用/设置/更改其他命令的键绑定,例如,移动到行首
,删除到行尾
。我使用了上面的(默认)键绑定,因为它们适合我
编辑:
要删除多个连续的行,请先按住control键,然后按A(仅转到段落/行的开头),然后按住K直到删除所有行(这将在光标保持在开头时起作用)
为了使任务更简单(对我来说),我将command for
Delete设置为段落的结尾,home/End设置为段落的开头/结尾。如果您是键盘大师用户,只需创建一个执行以下操作的宏:
- 命令左箭头
- 向下移动箭头
- 删除
我将其分配给Command-D,并使其仅在Xcode中可用。明白了!这适用于XCode 4.3到4.5,不需要额外的应用程序,并且是特定于XCode的
此解决方案基本上与所述的复制行命令相同:
编辑plist文件
它位于/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist
请注意:
- 链接的答案建议对此使用XCode,但我发现这会使XCode崩溃
- 此路径适用于Lion-其他操作系统版本可能有所不同
- 您可能需要sudo或更改权限才能编辑此文件
- 编辑前关闭XCode
添加新的
元素
将此文本添加到此文件底部的
结尾上方
<key>Custom</key>
<dict>
<key>Delete Current Line In One Hit</key>
<string>moveToEndOfLine:, deleteToBeginningOfLine:, deleteToEndOfParagraph:</string>
</dict>
自定义
一次性删除当前行
moveToEndOfLine:,DeleteToEndofline:,deleteToEndOfParagraph:
请注意:
- 这是在现有的
中,因此在此之后有一个
- 这将命名操作“一次性删除当前行”与字符串中的三个关键操作相关联。为了得到正确的组合,我在这里使用了不同的选项。例如,如果尝试移动到起始行,则删除到起始行,而不是相反,然后在空行上使用它将删除该行和整个下一行。这是令人不快的
保存此文件并打开XCode
在XCode中添加新的密钥绑定
请参阅或执行以下操作中的屏幕截图:
开放XCode首选项
选择键绑定
点击所有
在搜索框中键入“删除”并搜索“一次性删除当前行”
添加新的绑定
这应该可以做到,但要注意一点。我无法使用XCode保存新绑定。
虽然我的解决方法略有变化,但仍描述了相同的问题:
创建默认绑定的副本(点击绑定窗口左下角的+按钮并创建副本)
在副本中设置新绑定
关闭首选项对话框(这就是变体!)
再次打开首选项,对旧副本进行新的复制,并删除旧副本
<string>moveToEndOfLine:, deleteToBeginningOfLine:, deleteToEndOfParagraph:</string>
<string>selectLine:, delete:</string>
<key>Customized</key>
<dict>
<key>Delete Line</key>
<string>moveToBeginningOfLine:, deleteToEndOfLine:, moveDown:, deleteBackward:</string>
</dict>
<string>moveToEndOfLine:, deleteToBeginningOfLine:, deleteToEndOfParagraph:</string>