Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
305 changes: 305 additions & 0 deletions IDETextKeyBindingSet.plist
Original file line number Diff line number Diff line change
@@ -0,0 +1,305 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Cancellation</key>
<dict>
<key>Cancel</key>
<string>cancelOperation:</string>
</dict>
<key>Case Changes</key>
<dict>
<key>Capitalize Word</key>
<string>capitalizeWord:</string>
<key>Lowercase Word</key>
<string>lowercaseWord:</string>
<key>Uppercase Word</key>
<string>uppercaseWord:</string>
</dict>
<key>Code Completion</key>
<dict>
<key>Select Next Completion</key>
<string>nextCompletion:</string>
<key>Select Previous Completion</key>
<string>previousCompletion:</string>
<key>Show Completion List</key>
<string>complete:</string>
</dict>
<key>Deletions</key>
<dict>
<key>Delete</key>
<string>delete:</string>
<key>Delete Backward</key>
<string>deleteBackward:</string>
<key>Delete Backward by Decomposing Previous Character</key>
<string>deleteBackwardByDecomposingPreviousCharacter:</string>
<key>Delete Forward</key>
<string>deleteForward:</string>
<key>Delete Subword Backward</key>
<string>deleteSubWordBackward:</string>
<key>Delete Subword Forward</key>
<string>deleteSubWordForward:</string>
<key>Delete Expression Backward</key>
<string>deleteExpressionBackward:</string>
<key>Delete Expression Forward</key>
<string>deleteExpressionForward:</string>
<key>Delete Word Backward</key>
<string>deleteWordBackward:</string>
<key>Delete Word Forward</key>
<string>deleteWordForward:</string>
<key>Delete to Beginning of Document</key>
<string>deleteToBeginningOfDocument:</string>
<key>Delete to Beginning of Line</key>
<string>deleteToBeginningOfLine:</string>
<key>Delete to Beginning of Paragraph</key>
<string>deleteToBeginningOfParagraph:</string>
<key>Delete to End of Document</key>
<string>deleteToEndOfDocument:</string>
<key>Delete to End of Line</key>
<string>deleteToEndOfLine:</string>
<key>Delete to End of Paragraph</key>
<string>deleteToEndOfParagraph:</string>
</dict>
<key>Find &amp; Replace</key>
<dict>
<key>Find Next</key>
<string>findNext:</string>
<key>Find Previous</key>
<string>findPrevious:</string>
<key>Replace</key>
<string>replace:</string>
<key>Replace All</key>
<string>replaceAll:</string>
<key>Replace and Find Next</key>
<string>replaceAndFindNext:</string>
<key>Replace and Find Previous</key>
<string>replaceAndFindPrevious:</string>
</dict>
<key>Graphical Element Transposition</key>
<dict>
<key>Transpose</key>
<string>transpose:</string>
<key>Transpose Words</key>
<string>transposeWords:</string>
</dict>
<key>Insertions and Indentations</key>
<dict>
<key>Indent</key>
<string>indent:</string>
<key>Insert Backtab</key>
<string>insertBacktab:</string>
<key>Insert Container Break</key>
<string>insertContainerBreak:</string>
<key>Insert Double Quote without Extra Action</key>
<string>insertDoubleQuoteIgnoringSubstitution:</string>
<key>Insert Line Break</key>
<string>insertLineBreak:</string>
<key>Insert Newline</key>
<string>insertNewline:</string>
<key>Insert Newline and Leave Selection Before It</key>
<string>insertNewlineIgnoringFieldEditor:, moveBackward:</string>
<key>Insert Newline without Extra Action</key>
<string>insertNewlineIgnoringFieldEditor:</string>
<key>Insert Paragraph Separator</key>
<string>insertParagraphSeparator:</string>
<key>Insert Single Quote without Extra Action</key>
<string>insertSingleQuoteIgnoringSubstitution:</string>
<key>Insert Slash</key>
<string>insertRightToLeftSlash:</string>
<key>Insert Tab</key>
<string>insertTab:</string>
<key>Insert Tab without Extra Action</key>
<string>insertTabIgnoringFieldEditor:</string>
</dict>
<key>Mark &amp; Yank</key>
<dict>
<key>Delete to Mark</key>
<string>deleteToMark:</string>
<key>Select to Mark</key>
<string>selectToMark:</string>
<key>Set Mark</key>
<string>setMark:</string>
<key>Swap with Mark</key>
<string>swapWithMark:</string>
<key>Yank</key>
<string>yank:</string>
<key>Yank and Select</key>
<string>yankAndSelect:</string>
</dict>
<key>Scrolling</key>
<dict>
<key>Center Selection in Visible Area</key>
<string>centerSelectionInVisibleArea:</string>
<key>Scroll Left</key>
<string>scrollTabWidthLeft:</string>
<key>Scroll Line Down</key>
<string>scrollLineDown:</string>
<key>Scroll Line Up</key>
<string>scrollLineUp:</string>
<key>Scroll Page Down</key>
<string>scrollPageDown:</string>
<key>Scroll Page Up</key>
<string>scrollPageUp:</string>
<key>Scroll Right</key>
<string>scrollTabWidthRight:</string>
<key>Scroll to Beginning of Document</key>
<string>scrollToBeginningOfDocument:</string>
<key>Scroll to End of Document</key>
<string>scrollToEndOfDocument:</string>
</dict>
<key>Selection</key>
<dict>
<key>Move Backward</key>
<string>moveBackward:</string>
<key>Move Backward Extending Selection</key>
<string>moveBackwardAndModifySelection:</string>
<key>Move Down</key>
<string>moveDown:</string>
<key>Move Down Extending Selection</key>
<string>moveDownAndModifySelection:</string>
<key>Move Forward</key>
<string>moveForward:</string>
<key>Move Forward Extending Selection</key>
<string>moveForwardAndModifySelection:</string>
<key>Move Left</key>
<string>moveLeft:</string>
<key>Move Left Extending Selection</key>
<string>moveLeftAndModifySelection:</string>
<key>Move Paragraph Backward</key>
<string>moveBackward:, moveToBeginningOfParagraph:</string>
<key>Move Paragraph Backward Extending Selection</key>
<string>moveParagraphBackwardAndModifySelection:</string>
<key>Move Paragraph Forward</key>
<string>moveForward:, moveToEndOfParagraph:</string>
<key>Move Paragraph Forward Extending Selection</key>
<string>moveParagraphForwardAndModifySelection:</string>
<key>Move Right</key>
<string>moveRight:</string>
<key>Move Right Extending Selection</key>
<string>moveRightAndModifySelection:</string>
<key>Move Subword Backward</key>
<string>moveSubWordBackward:</string>
<key>Move Subword Backward Extending Selection</key>
<string>moveSubWordBackwardAndModifySelection:</string>
<key>Move Subword Forward</key>
<string>moveSubWordForward:</string>
<key>Move Subword Forward Extending Selection</key>
<string>moveSubWordForwardAndModifySelection:</string>
<key>Move Expression Left</key>
<string>moveExpressionBackward:</string>
<key>Move Expression Left Extending Selection</key>
<string>moveExpressionBackwardAndModifySelection:</string>
<key>Move Expression Right</key>
<string>moveExpressionForward:</string>
<key>Move Expression Right Extending Selection</key>
<string>moveExpressionForwardAndModifySelection:</string>
<key>Move Up</key>
<string>moveUp:</string>
<key>Move Up Extending Selection</key>
<string>moveUpAndModifySelection:</string>
<key>Move Word Backward</key>
<string>moveWordBackward:</string>
<key>Move Word Backward Extending Selection</key>
<string>moveWordBackwardAndModifySelection:</string>
<key>Move Word Forward</key>
<string>moveWordForward:</string>
<key>Move Word Forward Extending Selection</key>
<string>moveWordForwardAndModifySelection:</string>
<key>Move Word Left</key>
<string>moveWordLeft:</string>
<key>Move Word Left Extending Selection</key>
<string>moveWordLeftAndModifySelection:</string>
<key>Move Word Right</key>
<string>moveWordRight:</string>
<key>Move Word Right Extending Selection</key>
<string>moveWordRightAndModifySelection:</string>
<key>Move to Beginning of Document</key>
<string>moveToBeginningOfDocument:</string>
<key>Move to Beginning of Document Extending Selection</key>
<string>moveToBeginningOfDocumentAndModifySelection:</string>
<key>Move to Beginning of Line</key>
<string>moveToBeginningOfLine:</string>
<key>Move to Beginning of Line Extending Selection</key>
<string>moveToBeginningOfLineAndModifySelection:</string>
<key>Move to Beginning of Paragraph</key>
<string>moveToBeginningOfParagraph:</string>
<key>Move to Beginning of Paragraph Extending Selection</key>
<string>moveToBeginningOfParagraphAndModifySelection:</string>
<key>Move to End of Document</key>
<string>moveToEndOfDocument:</string>
<key>Move to End of Document Extending Selection</key>
<string>moveToEndOfDocumentAndModifySelection:</string>
<key>Move to End of Line</key>
<string>moveToEndOfLine:</string>
<key>Move to End of Line Extending Selection</key>
<string>moveToEndOfLineAndModifySelection:</string>
<key>Move to End of Paragraph</key>
<string>moveToEndOfParagraph:</string>
<key>Move to End of Paragraph Extending Selection</key>
<string>moveToEndOfParagraphAndModifySelection:</string>
<key>Move to Left End of Line</key>
<string>moveToLeftEndOfLine:</string>
<key>Move to Left End of Line Extending Selection</key>
<string>moveToLeftEndOfLineAndModifySelection:</string>
<key>Move to Right End of Line</key>
<string>moveToRightEndOfLine:</string>
<key>Move to Right End of Line Extending Selection</key>
<string>moveToRightEndOfLineAndModifySelection:</string>
<key>Page Down</key>
<string>pageDown:</string>
<key>Page Down Extending Selection</key>
<string>pageDownAndModifySelection:</string>
<key>Page Up</key>
<string>pageUp:</string>
<key>Page Up Extending Selection</key>
<string>pageUpAndModifySelection:</string>
<key>Select All</key>
<string>selectAll:</string>
<key>Select Line</key>
<string>selectLine:</string>
<key>Select Paragraph</key>
<string>selectParagraph:</string>
<key>Select Word</key>
<string>selectWord:</string>
</dict>
<key>Undo/Redo</key>
<dict>
<key>Redo</key>
<string>redo:</string>
<key>Undo</key>
<string>undo:</string>
</dict>
<key>Writing Direction</key>
<dict>
<key>Make Base Writing Direction Left to Right</key>
<string>makeBaseWritingDirectionLeftToRight:</string>
<key>Make Base Writing Direction Natural</key>
<string>makeBaseWritingDirectionNatural:</string>
<key>Make Base Writing Direction Right to Left</key>
<string>makeBaseWritingDirectionRightToLeft:</string>
<key>Make Text Writing Direction Left to Right</key>
<string>makeTextWritingDirectionLeftToRight:</string>
<key>Make Text Writing Direction Natural</key>
<string>makeTextWritingDirectionNatural:</string>
<key>Make Text Writing Direction Right to Left</key>
<string>makeTextWritingDirectionRightToLeft:</string>
</dict>
<!-- Custom Bindings -->
<key>Custom Bindings</key>
<dict>
<!-- Source Editor -->
<key>Move to end of line and add semi-colon</key>
<string>moveToEndOfLine:, insertText:, ;</string>
<key>synthesize</key>
<string>setMark:, moveWordBackward:, deleteToMark:, insertText:, @synthesize , yank:, insertText:, = m_, yank:, insertText:, ;, insertNewline:</string>
<key>nil value</key>
<string>insertText:, = nil;, insertNewline:</string>
<!-- Debugger Console-->
<key>Prepend class method to message</key>
<string>moveToEndOfParagraph:, insertText:, class], moveToBeginningOfParagraph:, moveWordRight:, moveForward:, insertText:, [, moveToEndOfParagraph: </string>
<key>Prepend "p (int)" to message</key>
<string>moveToBeginningOfParagraph:, insertText:, p (int)</string>
</dict>
<!-- End Custom Bindings -->
</dict>
</plist>
5 changes: 4 additions & 1 deletion README.markdown
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
Copy `jad.idekeybindings` into `~/Library/Developer/Xcode/UserData/KeyBindings/`, creating directories as necessary.

Or clone the repo directly into this directory:

$ cd ~/Library/Developer/Xcode/UserData/
$ git clone git@github.com:jad/xcode4-key-bindings.git KeyBindings

To see an example of implementing multi-action key bindings look at IDETextKeyBindingsSet.plist.

To use these bindings copy `IDETextKeyBindingsSet.plist` into `/Developer/Library/PrivateFrameworks/IDEKit.framework/Resources/` then open Xcode's Key Bindings preferences and assign a key combination to them.
10 changes: 10 additions & 0 deletions jad.idekeybindings
Original file line number Diff line number Diff line change
Expand Up @@ -354,6 +354,16 @@
<string>deleteWordBackward:</string>
<key>~</key>
<string>deleteWordBackward:</string>
<key>^]</key>
<array>
<string>moveForward:</string>
<string>moveToEndOfParagraph:</string>
</array>
<key>^o</key>
<array>
<string>insertNewlineIgnoringFieldEditor:</string>
<string>moveBackward:</string>
</array>
</dict>
<key>Version</key>
<integer>3</integer>
Expand Down