Xcode:删除行热键

时间:2009-01-25 00:27:02

标签: objective-c xcode keyboard-shortcuts

我正在寻找一种方法来将一些热键映射到Xcode中的“删除光标所在的行”。我在文本键绑定中找到了“删除到行尾”和“删除行开头”,但我不知道如何完全删除行,无论我选择了什么。 TextMate将此功能映射到Ctrl + Shift + D,如果可能,我会喜欢同样的事情。有什么想法吗?

8 个答案:

答案 0 :(得分:30)

感谢Ashley的帮助。经过一些实验,我映射了我最喜欢的TextMate命令(重复行,删除行)。我创建了文件〜/ Library / KeyBindings / PBKeyBinding.dict 并添加了以下内容:

{
    "^$K" = (
        "selectLine:",
        "cut:"
    );
    "^$D" = (
        "selectLine:",
        "copy:",
        "moveToEndOfLine:",
        "insertNewline:",
        "paste:"
    );
}

添加的“deleteBackward:”在删除行内容后备份一行。您也可以使用“selectLine:”。

答案 1 :(得分:14)

您可以设置一个适用于所有Cocoa应用程序的系统范围的密钥绑定文件。

要做你想做的事,它应该是这样的:

在您的主文件夹中,Library / KeyBindings / DefaultKeyBinding.dict

{
    "^D" = (
        "moveToBeginningOfLine:",
        "deleteToEndOfLine:",
    );
}

我相信如果您只想将它​​应用于Xcode,您可以将文件命名为PBKeyBinding.dict,但我自己并没有尝试。您可以详细了解此系统herehere

答案 2 :(得分:11)

由于我并不总是使用相同的xcode,所以我不想安装脚本。

Xcode使用一些emacs命令子集。我用这种方法快速删除一行。 ^ k(control-k)从光标删除到行尾。 这样做两次也会删除回车并占用下一行。 ^ a将您带到行的开头。

因此,要从头开始删除完整的行,您可以使用^ a ^ k ^ k。

答案 3 :(得分:8)

我一直在寻找解决方案,我尝试了Ashley Clark,但事实证明使用一个名为delete Line的用户脚本更简单。

  • 打开“帮助”左侧看起来像滚动的奇怪菜单。
  • 选择编辑用户脚本...
  • 单击“键绑定”选项卡
  • 展开文字部分
  • 双击“删除行”旁边的⌘列,然后输入热键。它可能会警告你,你从其他命令中偷走了它,但那没关系。

完成!如果你是像我一样的Eclipse瘾君子,你可以为Move Line Up和Move Line Down做同样的事情。

答案 4 :(得分:3)

<key>Custom Keyword Set</key>
<dict>
 <key>Delete Current Line In One Hit</key>
     <string>moveToEndOfLine:, deleteToBeginningOfLine:, deleteToEndOfParagraph:</string>
</dict>

我建议您在文件 IDETextKeyBindingSet.plist 中创建自定义dictonary。

所以:

  • 关闭Xcode;
  • 打开终端;
  • sudo nano /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist
  • 添加新的自定义部分,例如顶部的代码;
  • 保存,退出并打开Xcode;
  • [Xcode&gt;偏好&gt;键绑定]
  • 搜索“删除..”并创建新的快捷方式。

答案 5 :(得分:0)

这对我有用(Xcode 4.4.1):

与此处描述的步骤相同:Xcode duplicate line(哈雷答案)

但不是:

selectLine:,copy:,moveToEndOfLine:,insertNewline:,paste:,deleteBackward:

使用:

selectLine:,moveToBeginningOfLine:,deleteToEndOfLine:

答案 6 :(得分:0)

如果你在现代Xcode中遇到麻烦(我是),Xcode 7.2中的解决方案就是做Opena mentioned here with screenshotsin text form via Velthune's answer。由于我想要一个更直接的命令,我将命令简化为:

selectLine:, delete:, moveToBeginningOfLine:

当然在Xcode的首选项&gt;&gt;键绑定,你可以在Key列下找到命令双击并给它自己的Ctrl + Shift + D绑定。

Here's a screenshot of what I ended up with

答案 7 :(得分:0)

对于Xcode 9.0(测试版),将自定义密钥字典插入到IDETextKeyBindingSet.plist中对我来说运行正常。如果已经打开,则需要重新启动XCode,在下次启动后,您将在KeyBindings菜单下找到新的自定义快捷方式。

<key>Customized</key>
<dict>
    <key>Delete Rest Of Line</key>
    <string>deleteToEndOfLine:</string>
    <key>Delete Line</key>
    <string>moveToBeginningOfLine:, deleteToEndOfLine:</string>
    <key>Duplicate Current Line</key>
    <string>selectLine:, copy:, moveToEndOfLine:, insertNewline:, moveToBeginningOfLine:, paste:</string>
</dict>
相关问题