如何在Xcode 8中创建删除线键盘快捷键?Xcode 3解决方案不再适用

Kla*_*aas 77 macos xcode keyboard-shortcuts xcode4 xcode8

在以前的版本中Xcode,可以创建一个键绑定来删除当前行.有不同的解决方案,例如这里描述它们:

Xcode:删除行热键

Xcode重复/删除行

http://bigdiver.wordpress.com/2009/09/11/configure-homeend-key-bidings-on-mac-os-x/

http://www.betadesigns.co.uk/Blog/2010/02/03/custom-xcode-shortcuts/

所有解决方案都包括修改其中一个文件:

〜/ Library/Application Support/Xcode/Key Bindings/*.pbxkeys
~/Library/KeyBindings/DefaultKeyBinding.dict
~/Library/KeyBindings/PBKeyBinding.dict

现有快捷方式的一个很好的资源Xcode 4http://cocoasamurai.blogspot.com/2011/03/xcode-4-keyboard-shortcuts-now.html.有关删除的内容很多,但"删除行"没有.

但是,这些解决方案从那时起就无效了Xcode 4.

更新:问题仍然是相同的Xcode 5.1.1

更新:问题仍然是相同的Xcode 6.1 GM Seed 2

更新:截至2016年4月26日仍适用于Xcode版本7.3(7D175)

更新:六年后,Xcode 8.3内置了一个解决方案.见下面的答案.

Vas*_*asu 92

经过大量的搜索,我来到了以下解决方案:

按住control键,然后按AKK.

(注意:第二个K删除空行).

实际上它是两个命令的组合:Move to Beginning of Paragraph&Delete to End of Paragraph.您也可以使用/设置其他键,也可以使用/设置/更改其他命令的键绑定,例如Move to Beginning of Line&Delete to End of Line.我使用了上面的(默认)键绑定,因为它们适合我.

编辑:

要删除多个连续的行,首先按住control键,然后按A(只是转到段落/行的开头),然后按住K直到删除所有行(这将在光标保持在一开始).

为了让任务变得容易(对我而言),我已经设置commandDDelete to End of Paragraphhome/ end以进入段落的开头/结尾.

  • 史上最差的IDE. (12认同)
  • 很好的解决方案,但我真的在寻找一个捷径.如果我想在TextWrangler中删除5行,例如它只按下cmd-d五次.奇怪的是,在Xcode中没有使用cmd-d ...... (2认同)

Pau*_*tos 62

看起来像Xcode 8.3最后添加了删除行命令:)

默认情况下,没有为其分配键盘快捷键,因此您需要自己添加一个:

  1. 打开Xcode > 首选项 > 键绑定
  2. 搜索 Delete Line
  3. 在" 键"列中添加键盘快捷

Xcode键绑定

  • 我在**Xocde 9 Beta**中找到了解决方法.请参阅下面的答案./sf/answers/3210794681/ (3认同)
  • 最后,最后修复了Xcode 9.1(9B55)!! (2认同)

Rhu*_*arb 59

得到它了!这适用于XCode 4.3到4.5,不需要额外的应用程序,并且特定于XCode.

此解决方案与此处描述的Duplicate Line命令基本相同:

编辑plist文件

它位于/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist

注意:

  • 链接的答案建议使用XCode,但我发现这会导致XCode崩溃
  • 这条路径适用于Lion - 它可能因其他操作系统版本而异
  • 您可能必须sudo或更改编辑此文件的权限
  • 编辑前关闭XCode

添加一个新<dict>元素

将此文本添加<dict>到此文件底部的结尾处

    <key>Custom</key>
    <dict>
      <key>Delete Current Line In One Hit</key>
      <string>moveToEndOfLine:, deleteToBeginningOfLine:, deleteToEndOfParagraph:</string> 
    </dict>
Run Code Online (Sandbox Code Playgroud)

注意:

  • 这是现有的内部,<dict>所以有一个</dict></plist>在此之后
  • 这将命名的操作"将当前行中的当前行删除"与字符串中的三个键操作相关联.我在这里玩了不同的选项以获得正确的组合.例如,如果您尝试moveToBeginningOfLine,则删除ToToEndOfLine而不是反之,那么在空行上使用它将删除该行整个下一行.这是不愉快的

保存并打开XCode

在XCode中添加新的键绑定

请参阅链接答案中的屏幕截图或执行此操作:

  1. 打开XCode首选项
  2. 选择键绑定
  3. 单击全部
  4. 在SEarch框中键入"删除"并搜索"在一次命中中删除当前行"
  5. 添加新绑定.

这应该这样做,但有一点需要注意.我永远无法让XCode 保存新的绑定.虽然我的解决方法略有不同,但此处描述同样的问题:

  1. 创建Default绑定的副本(点击Bindings窗口左下角的+按钮并创建一个副本)
  2. 在重复中设置新绑定
  3. 关闭首选项对话框(这是变体!)
  4. 再次打开首选项并创建旧副本的新副本并删除旧副本.

多么苛刻,呃?但它的确有效.现在我已经映射了Ctrl + D来删除Lion上XCode 4.3中的整个当前行.

  • 仍然在Xcode 7工作.这是值得的. (5认同)
  • 这适用于Xcode 6.2(6C86e),我也不需要解决方法来使Xcode"保存"键绑定.好极了!:) (2认同)

Woo*_*Kim 16

我找到了Xcode 9的临时解决方法.

打开Xcode/Content/Frameworks/IDEKit.framework/Resources/IDETextK eyBindingSet.plist并添加以下行.

它模仿Xcode 8中有限支持的动作.它只能删除一行,但我很满意.我希望很快就会解决这个问题.

<key>Customized</key>
<dict>
    <key>Delete Line</key>
    <string>moveToBeginningOfLine:, deleteToEndOfLine:, moveDown:, deleteBackward:</string>
</dict>
Run Code Online (Sandbox Code Playgroud)

重新启动Xcode后,您可以在Key Bindings下面看到自定义项目.

在此输入图像描述

绑定并使用它!

编辑)我认为下面一个比原来好.

<string>moveToEndOfLine:, deleteToBeginningOfLine:, deleteToEndOfParagraph:</string>
Run Code Online (Sandbox Code Playgroud)

  • Xcode 9正确回答这里.它适用于Xcode 9版本9.0(9A235) (2认同)

bor*_*kur 13

我使用BetterTouchTool,非常酷:

在此输入图像描述


Rab*_*ole 9

大黄的答案是正确的,只有一件事,plist文件中有更简单的命令.遵循大黄的所有指示,但是

代替

<string>moveToEndOfLine:, deleteToBeginningOfLine:, deleteToEndOfParagraph:</string>
Run Code Online (Sandbox Code Playgroud)

使用下面

<string>selectLine:, delete:</string>
Run Code Online (Sandbox Code Playgroud)

这更清楚,并且可以避免任何故障.

我想把它写成评论,但我的"声誉"不允许我这样做.


小智 7

试试这个:

  1. 首先打开Xcode-> Preferences

  2. 选择Key Bindigs

  3. 搜索删除段落

  4. 删除段落更改为快捷方式

在此输入图像描述