Xcode复制/删除线

来自Eclipse并且一直用来复制行,奇怪的是Xcode没有这样的function。 还是呢?

我知道可以更改系统范围的键绑定,但这不是我所追求的。

整点不是使用Cmd-C / Cmd-V快捷键。 我有来自IntelliJ相同的问题,并能够只用Cmd-D复制行,并用Cmd-Y删除它们是一个很大的节省时间。

从那以后一直困扰着我。 但是,看起来像其他人已经find了解决scheme 。

简而言之,用下面的内容创build一个~/Library/KeyBindings/PBKeyBinding.dict文件并重新启动Xcode。

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

这将创build两个快捷键: CtrlShiftK删除当前行, CtrlShiftD复制当前行。 请注意, 只有在Xcode中没有使用自定义键绑定的情况下才能使用。 切换到“XCode默认”,事情应该工作。 在Snow Leopard上testingXCode 3.2。

有关Mac OS X键绑定的更多信息: http : //funkworks.blogspot.it/2013/03/republishing-of-wwwerasetotheleftcompos.html

要删除一行按CtrlA去行的开始,然后CtrlK删除它,和另一个时间CtrlK删除空行。 (我不经常使用Xcode,但是我已经习惯了Emacs和其他带有Emacs-like绑定的文本input,而且它似乎也可以在Xcode中工作。)

重复一行 :我不知道有很多程序有这个命令,但通常我只是使用复制+粘贴 – 在Xcode它是类CUA: Ctrl + A去行的开始, Shift + select它, Command + C复制, Command + * V粘贴两次(一次覆盖行,一次追加)。

(从一个人经常在不同的程序中input和编辑文本,偶尔也会被一个愚蠢的小部件分散注意力,同时在文本input中稍作修改,他无法避免记住这些序列和习惯)

删除一行像eclipse CTRL + D(在Xcode 4.5.1上testing):

首先,改变这些权利:

 sudo chmod 666 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist sudo chmod 777 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/ 

用Xcode自己打开/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist并添加这个新条目:

 deleteToBeginningOfLine:, moveToEndOfLine:, deleteToBeginningOfLine:, deleteBackward:, moveDown:, moveToBeginningOfLine: 

在这里输入图像说明

重新启动Xcode并打开Xcode> Preferences> KeyBindings。 find你的macros并定义一个快捷键:

在这里输入图像说明

我尝试了关键绑定解决scheme,但是我无法使其工作。 然而编辑我的XCode键绑定就像一个魅力。 这是我做的。

此解决scheme不会更改剪贴板的内容!

打开XCode键绑定:

替代文字

在编辑用户脚本对话框中:

  1. 复制“移动下线”脚本并重新命名
  2. 复制“Move Line Down.scpt”文件,重命名脚本,在脚本编辑器中通过(双击)select文件
  3. 编辑脚本(打开“AppleScript编辑器”),并删除“删除(段落startLine通过endLine)”段落。
  4. 如果你不想重新启动XCode,你似乎必须删除并重新添加脚本。 确保你有“输出”设置为“放弃输出”,否则你将有一个“(空)在你的源文件
  5. 我稍微修改了一些脚本来select正确的行:

重复排列:

 using terms from application "Xcode" tell first text document set {startLine, endLine} to selected paragraph range if startLine > 1 then set theText to (paragraphs startLine through endLine) set theText to (theText as string) make new paragraph at beginning of paragraph (startLine) with data theText set selected paragraph range to {endLine + 1, endLine + endLine - startLine + 1} else beep 1 end if end tell end using terms from 

重复线下:

 using terms from application "Xcode" tell first text document set {startLine, endLine} to selected paragraph range if endLine < (count paragraphs) then set theText to (paragraphs startLine through endLine) set theText to (theText as string) (* delete (paragraphs startLine through endLine) *) make new paragraph at beginning of paragraph (endLine + 1) with data theText set selected paragraph range to {startLine, endLine} else beep 1 end if end tell end using terms from 

替代文字

由于Xcode 4使用键绑定很难实现,所以我使用了Keyboard Maestro ( Quickeys也应该可以,但它不完全兼容Lion)。 例如,这是我的Keyboard Maestro快捷键(绑定到⌘-⇧-D):

http://bit.ly/thC6yf

好的,所以我有这个工作一段时间,然后突然爆发了。 现在我已经在这里结合了不同的职位,并find了适用于XCode 6.3.1的解决scheme。

  1. 使用Finder进入/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/

  2. find名为资源的文件夹。 右键单击它,按获取信息,解锁共享和权限设置(通过按下locking)并将其设置为全部读写。

  3. input文件夹并find文件IDETextKeyBindingSet.plist。 右键单击它,按获取信息,解锁共享和权限设置(通过按下locking)并将其设置为全部读写。

  4. 用XCode打开文件(默认)

  5. find删除,右键单击并添加一个新行。 将其命名为“删除线”。 在值字段中,input: selectLine:, deleteBackward: (这也可以做重复行: selectLine:,copy:,moveToEndOfLine:,insertNewline:,paste:,deleteBackward:

  1. 启动XCode,转到preferences / keybindings并searchDelete Line。 设置快捷键。 请享用。

三次点击select整行,命令cselect和命令v两次复制它。 这不是一个Xcode函数,它只是操作系统的一部分。

我知道这个线程已经很老了,但是我发现了另一个使用BetterTouchTool的解决scheme,你可以在BTT中这样configuration,在一个快捷方式中执行Ctrl+ACtrl+KCtrl+K

在这里输入图像说明

(使用附加附加操作button附加第二个和第三个快捷方式)

PS:来自Eclipse的Cmd+D删除行^^

使用用户脚本。

有脚本移动和删除行。 您必须为这些脚本定义键绑定(菜单脚本 – > 编辑用户脚本… ,在xCode 3.2下)。

要复制行,你必须制作自己的脚本。 但是很简单! 复制“移动下线”脚本并删除删除选定文本的行:

 delete (paragraphs startLine through endLine) 

这里有一个XCode4行重复的解决scheme

我还向plist添加了行删除:

<key>Remove Line</key> <string>selectLine:, deleteBackward:</string>

由damien.flament的解决scheme效果很好,你可能需要设置输出到“放弃输出”见下面的图片

用户脚本设置

PS:我不知道如何评论他的答案。

如上所述,closuresXCode并在<key>text</key>部分的<dict>中插入以下内容到~/Library/Application Support/Xcode/Key Bindings/ <user>.pbxkeys

  <key>^D</key> <array> <string>moveToLeftEndOfLine:</string> <string>deleteToEndOfLine:</string> </array> <key>^K</key> <array> <string>selectLine:</string> <string>copy:</string> <string>moveToEndOfLine:</string> <string>insertNewline:</string> <string>paste:</string> <string>deleteBackward:</string> </array> 

启动XCode并享受CTRLSHIFTDCTRLSHIFTK。
如果你想CTRLDCTRLK ,使用^d^k在键定义。 确保文件中没有重复的键绑定。

XCode 3.2适合我

这可以使用BetterTouchTool 。 CMD + D将复制一行。 创build一个像这样的新快捷方式:

在这里输入图像说明

使用“附加附加动作”button附加第二个和第三个快捷键

不需要修改Xcode。 您可以使用Xcode扩展名Linex

在这里输入图像说明

如果您已经定制了您的Xcode密钥绑定,您将不得不编辑文件: ~/Library/Application Support/Xcode/Key Bindings/<user>.pbxkeys 。 只需将两个数组(如上所述)添加到Root/text字典。

三步删除当前行(查看时间过长,但速度非常快:D)

Cmd + :移动到行尾
Cmd + 删除 :删除开始的行
删除 :删除空行

对于Xcode 6.1得到了Xcode> Preferences> KeyBindings> Text并且有“Delete to End of Line”并分配一个你想要的键。

XCodePlus删除线插件,是一个为你做这个的XCode。 它预先安装Alcatraz包pipe理器…

https://github.com/payliu/XcodePlus

我们在Xcode 9.0上,键盘绑定仍然不起作用。 叹。

我发现这个要点非常有帮助,所以在这里重新发布以备将来参考:

  1. 打开/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/IDETextKeyBindingSet.plist
  2. 将下面的XML片段添加到该文件底部的</dict>之上
  3. 转到Xcode首选项 – >键绑定 – >文本标签 – >滚动,直到你看到复制
  4. 点击重复当前行,为它添加一个快捷方式,例如。 Cmnd + D(解决任何重复的绑定)
  5. 打开Xcode

<key>Duplication</key> <dict> <key>Duplicate Current Line</key> <string>moveToBeginningOfLine:, deleteToEndOfLine:, yank:, insertNewline:, moveToBeginningOfLine:, yank:</string> <key>Duplicate Lines</key> <string>selectLine:, copy:, moveToEndOfLine:, insertNewline:, paste:, deleteBackward:</string> <key>Delete Line</key> <string>selectLine:, deleteBackward:</string> </dict>

仍然没有像Xcode 9那样内置重复行的方法。自定义键绑定似乎有问题。