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两个快捷键: Ctrl – Shift – K删除当前行, Ctrl – Shift – D复制当前行。 请注意, 只有在Xcode中没有使用自定义键绑定的情况下才能使用。 切换到“XCode默认”,事情应该工作。 在Snow Leopard上testingXCode 3.2。
有关Mac OS X键绑定的更多信息: http : //funkworks.blogspot.it/2013/03/republishing-of-wwwerasetotheleftcompos.html
要删除一行 : 按Ctrl – A去行的开始,然后Ctrl – K删除它,和另一个时间Ctrl – K删除空行。 (我不经常使用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键绑定:
在编辑用户脚本对话框中:
- 复制“移动下线”脚本并重新命名
- 复制“Move Line Down.scpt”文件,重命名脚本,在脚本编辑器中通过(双击)select文件
- 编辑脚本(打开“AppleScript编辑器”),并删除“删除(段落startLine通过endLine)”段落。
- 如果你不想重新启动XCode,你似乎必须删除并重新添加脚本。 确保你有“输出”设置为“放弃输出”,否则你将有一个“(空)在你的源文件
- 我稍微修改了一些脚本来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):
好的,所以我有这个工作一段时间,然后突然爆发了。 现在我已经在这里结合了不同的职位,并find了适用于XCode 6.3.1的解决scheme。
-
使用Finder进入
/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/
。 -
find名为资源的文件夹。 右键单击它,按获取信息,解锁共享和权限设置(通过按下locking)并将其设置为全部读写。
-
input文件夹并find文件IDETextKeyBindingSet.plist。 右键单击它,按获取信息,解锁共享和权限设置(通过按下locking)并将其设置为全部读写。
-
用XCode打开文件(默认)
-
find删除,右键单击并添加一个新行。 将其命名为“删除线”。 在值字段中,input:
selectLine:, deleteBackward:
(这也可以做重复行:selectLine:,copy:,moveToEndOfLine:,insertNewline:,paste:,deleteBackward:
- 启动XCode,转到preferences / keybindings并searchDelete Line。 设置快捷键。 请享用。
三次点击select整行,命令cselect和命令v两次复制它。 这不是一个Xcode函数,它只是操作系统的一部分。
我知道这个线程已经很老了,但是我发现了另一个使用BetterTouchTool的解决scheme,你可以在BTT中这样configuration,在一个快捷方式中执行Ctrl+A
, Ctrl+K
, Ctrl+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并享受CTRL – SHIFT – D和CTRL – SHIFT – K。
如果你想CTRL – D和CTRL – K ,使用^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理器…
我们在Xcode 9.0上,键盘绑定仍然不起作用。 叹。
我发现这个要点非常有帮助,所以在这里重新发布以备将来参考:
- 打开
/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/IDETextKeyBindingSet.plist
- 将下面的XML片段添加到该文件底部的
</dict>
之上 - 转到Xcode首选项 – >键绑定 – >文本标签 – >滚动,直到你看到复制
- 点击重复当前行,为它添加一个快捷方式,例如。 Cmnd + D(解决任何重复的绑定)
- 打开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那样内置重复行的方法。自定义键绑定似乎有问题。