如何在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>