Last active
August 29, 2015 14:06
-
-
Save hparra/3222e5c11b2c828418f3 to your computer and use it in GitHub Desktop.
Global emacs keybindings, including meta
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
/* Keybindings for emacs emulation. Compiled by Jacob Rus. | |
* https://www.hcs.harvard.edu/~jrus/site/cocoa-text.html | |
* | |
* Place in ~/Library/KeyBindings/DefaultKeyBinding.dict | |
* | |
* This is a pretty good set, especially considering that many emacs bindings | |
* such as C-o, C-a, C-e, C-k, C-y, C-v, C-f, C-b, C-p, C-n, C-t, and | |
* perhaps a few more, are already built into the system. | |
* | |
* BEWARE: | |
* This file uses the Option key as a meta key. This has the side-effect | |
* of overriding Mac OS keybindings for the option key, which generally | |
* make common symbols and non-english letters. | |
*/ | |
/* Ctrl shortcuts */ | |
"^l" = "centerSelectionInVisibleArea:"; /* C-l Recenter */ | |
"^/" = "undo:"; /* C-/ Undo */ | |
"^_" = "undo:"; /* C-_ Undo */ | |
"^ " = "setMark:"; /* C-Spc Set mark */ | |
"^\@" = "setMark:"; /* C-@ Set mark */ | |
"^w" = "deleteToMark:"; /* C-w Delete to mark */ | |
"^j" = "insertNewline:"; /* C-j Insert Newline and tab (implicit) */ | |
/* Incremental search. */ | |
/* Uncomment these lines If Incremental Search IM is installed */ | |
/* "^s" = "ISIM_incrementalSearch:"; /* C-s Incremental search */ | |
/* "^r" = "ISIM_reverseIncrementalSearch:"; /* C-r Reverse incremental search */ | |
/* "^g" = "abort:"; /* C-g Abort */ | |
/* Meta shortcuts */ | |
"~f" = "moveWordForward:"; /* M-f Move forward word */ | |
"~b" = "moveWordBackward:"; /* M-b Move backward word */ | |
"~<" = "moveToBeginningOfDocument:"; /* M-< Move to beginning of document */ | |
"~>" = "moveToEndOfDocument:"; /* M-> Move to end of document */ | |
"~v" = "pageUp:"; /* M-v Page Up */ | |
"~/" = "complete:"; /* M-/ Complete */ | |
"~c" = ( "capitalizeWord:", /* M-c Capitalize */ | |
"moveForward:", | |
"moveForward:"); | |
"~u" = ( "uppercaseWord:", /* M-u Uppercase */ | |
"moveForward:", | |
"moveForward:"); | |
"~l" = ( "lowercaseWord:", /* M-l Lowercase */ | |
"moveForward:", | |
"moveForward:"); | |
"~d" = "deleteWordForward:"; /* M-d Delete word forward */ | |
"^~h" = "deleteWordBackward:"; /* M-C-h Delete word backward */ | |
"~\U007F" = "deleteWordBackward:"; /* M-Bksp Delete word backward */ | |
"~t" = "transposeWords:"; /* M-t Transpose words */ | |
"~\@" = ( "setMark:", /* M-@ Mark word */ | |
"moveWordForward:", | |
"swapWithMark"); | |
"~h" = ( "setMark:", /* M-h Mark paragraph */ | |
"moveToEndOfParagraph:", | |
"swapWithMark"); | |
/* C-x shortcuts */ | |
"^x" = { | |
"u" = "undo:"; /* C-x u Undo */ | |
"k" = "performClose:"; /* C-x k Close */ | |
"^f" = "openDocument:"; /* C-x C-f Open (find file) */ | |
"^x" = "swapWithMark:"; /* C-x C-x Swap with mark */ | |
"^m" = "selectToMark:"; /* C-x C-m Select to mark*/ | |
"^s" = "saveDocument:"; /* C-x C-s Save */ | |
"^w" = "saveDocumentAs:"; /* C-x C-w Save as */ | |
}; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment