検証環境:
Xcode 12
Swift 5.3
- Finder を開き、「Command(⌘) + Shift(⇧) + G」を押す。
/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/
を入力してディレクトリを開く。IDETextKeyBindingSet.plist
ファイルをエディタで開く。
またはターミナルから開く場合。
vi /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/IDETextKeyBindingSet.plist
- 最後の2行の上に追加する。今回は3つのコマンドを追加した。
- 現在のカーソル行の複製
- 現在のカーソル行の削除
- 行末でなくても改行
<key>My Custom Commands</key> <dict> <key>Duplicate Current Line</key> <string>selectLine:, copy:, moveToBeginningOfLine:, paste:, moveToEndOfLine:</string> <key>Delete Current Line</key> <string>selectLine:, delete:</string> <key>Continue Newline</key> <string>moveToEndOfLine:, insertNewline:</string> </dict> </dict> </plist>
- Xcode を再起動する。
「Command(⌘) + ,」で Preferences を開き、さらに Key Bindings を開く。
コマンドが追加されているので、右側の方をクリックし、実際のショートカットコマンドを入力する。
今回は以下のようなショートカットを登録した。
- Delete Current Line(現在のカーソル行の削除)->
Command(⌘) + D
- Continue Newline(行末でなくても改行)->
Shift(⇧) + enter(↩)
- Duplicate Current Line(現在のカーソル行の複製)->
Shift(⇧) + Command(⌘) + V
既存のショートカットを被ると赤バツが表示される。
その場合は Conflicts タブを開き、既存のショートカットを見つけて、マイナスボタンを押してショートカットを削除する。
削除できないものもあるのでその場合は適当に他のショートカットを割り当てるなどする。
ここで追加したショートカットは
~/Library/Developer/Xcode/UserData/KeyBindings/
ディレクトリにある
Default.idekeybindings
ファイルに追記されている。
ちなみに Xcode をアップデートすると IDETextKeyBindingSet.plist
がリセットされるので、再度追加する必要がある。