不借助第三方的插件,在 Xcode 下完全也可以实现这些功能。
- 首先找到 Xcode 中的自带的配置文件
/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/IDETextKeyBindingSet.plist
- 这个文件里配置了一些可以设置快捷键的操作, 使用常用的编辑器打开它(需要 root 权限)。
<key>GDI Commands</key>
<dict>
<key>GDI Duplicate Current Line</key>
<string>selectLine:, copy:, moveToEndOfLine:, insertNewline:, paste:, deleteBackward:</string>
<key>GDI Delete Current Line</key>
<string>moveToEndOfLine:, deleteToBeginningOfLine:, deleteBackward:, moveDown:, moveToEndOfLine:</string>
<key>GDI Move Current Line Up</key>
<string>selectLine:, cut:, moveUp:, moveToBeginningOfLine:, insertNewLine:, paste:, moveBackward:</string>
<key>GDI Move Current Line Down</key>
<string>selectLine:, cut:, moveDown:, moveToBeginningOfLine:, insertNewLine:, paste:, moveBackward:</string>
<key>GDI Insert Line Above</key>
<string>moveUp:, moveToEndOfLine:, insertNewline:</string>
<key>GDI Insert Line Below</key>
<string>moveToEndOfLine:, insertNewline:</string>
</dict>
- 上面这个
dict
是一组可以设置快捷键的操作,里面的key
是名称,对应的string
是对应的一组操作,可以根据这些操作自由装配成自己的其它快捷操作。
GDI Duplicate Current Line 复制当前行到下面一行
GDI Delete Current Line 删除当前行
GDI Move Current Line Up 把当前行往上移动一行
GDI Move Current Line Down 把当前行往下移动一行
GDI Insert Line Above 在当前行上面增加一空行
GDI Insert Line Below 在当前行下面增加一空行(不管光标是否在行尾)
- 把这段
<key>...</dict>
配置放到IDETextKeyBindingSet.plist
文件的最后的这两行之前:
</dict>
</plist>
-
重启 Xcode,在 Xcode 菜单中,打开Preferences,选中Key Binding,在右上方搜索GDI, 会出现类似下图的显示,如果没有的话,请检查上面的每步操作。
- 双击右边的空白处,就可以为每个功能设置不同的快捷键。