来自Eclipse,并且一直被用来复制行,发现Xcode没有这样的功能是很奇怪的。还是呢?
我知道可以更改系统范围的键绑定,但这不是我要的。
来自Eclipse,并且一直被用来复制行,发现Xcode没有这样的功能是很奇怪的。还是呢?
我知道可以更改系统范围的键绑定,但这不是我要的。
Answers:
重点不是使用Cmd-C
/ Cmd-V
快捷方式。我遇到了来自IntelliJ的相同问题,并且能够使用来复制行Cmd-D
并将其删除可以Cmd-Y
节省大量时间。
从那以后一直困扰着我。但是,似乎其他人已经找到了可行的解决方案。
简而言之,创建一个~/Library/KeyBindings/PBKeyBinding.dict
具有以下内容的文件,然后重新启动Xcode。
{
"^$K" = (
"selectLine:",
"cut:"
);
"^$D" = (
"selectLine:",
"copy:",
"moveToEndOfLine:",
"insertNewline:",
"paste:",
"deleteBackward:"
);
}
这将创建两个快捷方式:Ctrl- Shift- K删除当前行Ctrl- Shift- D用于复制当前行。请注意,这仅在不使用Xcode中的自定义键绑定集的情况下才有效。切换到“ XCode Default”,一切正常。在Snow Leopard的XCode 3.2上进行了测试。
有关Mac OS X键绑定的更多信息:http : //funkworks.blogspot.it/2013/03/republishing-of-wwwerasetotheleftcompos.html
Duplicate
(命令Edit -> Duplicate
)似乎有“总是”变灰(不意味着复制线)。
删除一行: Ctrl-A转到该行的开头,然后Ctrl-K删除它,再一次Ctrl-K删除空行。(我不经常使用Xcode,但是我已经习惯了在Emacs和其他带有类似Emacs的绑定的文本输入中使用Xcode,并且它似乎也可以在Xcode中使用。)
并复制一行:我不知道有很多程序具有该命令,但是通常我只使用Copy + Paste-在Xcode中,它类似于CUA: Ctrl+A转到该行的开头,Shift+↓选择它,Command + C复制和Command + * V粘贴两次(覆盖该行并附加到该行之后)。
(经常在不同的程序中打字和编辑文本的人,有时因不得不在文本输入中进行一些更正而不得不用笨拙的小部件分散注意力,他只是无法避免记住这些序列,和习惯)
删除类似eclipse CTRL+ 的行D(在Xcode 4.5.1上测试):
首先,更改这些权利:
sudo chmod 666 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist
sudo chmod 777 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/
/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist
用Xcode自己打开并添加以下新条目:
deleteToBeginningOfLine:, moveToEndOfLine:, deleteToBeginningOfLine:, deleteBackward:, moveDown:, moveToBeginningOfLine:
重新启动Xcode并打开Xcode> Preferences> KeyBindings。找到您的宏并定义一个快捷键:
我尝试了键绑定解决方案,但无法正常工作。但是,编辑我的XCode按键绑定就像是一种魅力。这是我的方法。
此解决方案不会更改剪贴板的内容!
打开XCode键绑定:
在“编辑用户脚本”对话框中:
重复排队:
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 6.3.1的解决方案。
转到/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/
Finder。
找到名为Resources的文件夹。右键单击它,按“获取信息”,解锁共享和权限设置(按锁定),然后将其设置为“全部读取和写入”。
进入文件夹并找到文件IDETextKeyBindingSet.plist。右键单击它,按“获取信息”,解锁共享和权限设置(按锁定),然后将其设置为“全部读取和写入”。
使用XCode打开文件(默认)
查找删除,右键单击并添加新行。将其命名为“删除行”。在值字段中,输入:selectLine:, deleteBackward:
。(这也有重复的线路进行:selectLine:,copy:,moveToEndOfLine:,insertNewline:,paste:,deleteBackward:
)
由于Xcode 4使使用键绑定难以实现,因此我不得不使用Keyboard Maestro(Quickeys也应能很好地工作,但它与Lion并不完全兼容)。例如,这是我的Keyboard Maestro快捷方式(绑定到⌘-⇧-D):
我知道这个线程已经很老了,但是我发现了使用BetterTouchTool的另一种解决方案,您可以通过在BTT中进行如下配置,在一个快捷方式中执行Ctrl+ A,Ctrl+ K,Ctrl+ K序列:
(使用附加附加操作按钮附加第二和第三快捷方式)
PS:来自Eclipse,其中Cmd+ D是删除行^^
使用用户脚本。
目前尚有脚本来移动和删除行。您必须为这些脚本定义键绑定(xCode 3.2下的菜单脚本 -> 编辑用户脚本...)。
要复制行,您必须创建自己的脚本。但这很简单!复制“下移行”脚本,然后删除删除所选文本的行:
delete (paragraphs startLine through endLine)
我们使用的是Xcode 9.0,并且键盘绑定仍然无法正常工作。叹。
我发现此要点非常有帮助,因此将其重新发布在此处以供将来参考:
/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/IDETextKeyBindingSet.plist
</dict>
<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>
damien.flament的解决方案效果很好,您可能需要将输出设置为“ Discard Output”,请参见下图
PS:我不知道如何评论他的答案。
正如上面所说的,密切的Xcode和插入以下,以 ~/Library/Application Support/Xcode/Key Bindings/ <user>.pbxkeys
里面<dict>
的<key>text</key>
部分:
<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对我来说很好用
如果您已经自定义了Xcode键绑定,则必须编辑文件:~/Library/Application Support/Xcode/Key Bindings/<user>.pbxkeys
。只需将两个数组(如上所述)添加到Root/text
字典中即可。
XCodePlus删除行插件是为您执行此操作的XCode。它预装了Alcatraz软件包管理器...
转到此地址:
/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet
然后在某些位置复制IDETextKeyBindingSet.plist文件,然后打开复制的文件并插入
selectLine:,copy:,paste:,paste:就像这张图片一样, 在此处输入图片说明 并保存并替换复制的文件到该地址/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet
然后重新启动xcode,打开xcode偏好设置,转到“ keybinding”选项卡,搜索重复的行(自定义)并为其定义短键,如下图所示