Last active
January 29, 2025 10:08
-
-
Save astyagun/fe665b93d9b79da584b0b9b41106d862 to your computer and use it in GitHub Desktop.
macOS Emacs-alike text editing shortcuts, including Russian keyboard layout
This file contains hidden or 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
{ | |
/* macOS Emacs-alike text editing shortcuts, including Russian keyboard layout | |
* Reference: | |
* - https://gist.github.com/zsimic/1367779 | |
* - http://xahlee.info/kbd/osx_keybinding.html | |
* - http://xahlee.info/kbd/osx_keybinding_action_code.html | |
* - http://osxnotes.net/keybindings.html | |
* - https://gist.github.com/cheapRoc/9670905 | |
* https://gist.github.com/astyagun/fe665b93d9b79da584b0b9b41106d862 */ | |
/* Move */ | |
"~f" = "moveWordForward:"; | |
"~b" = "moveWordBackward:"; | |
"~F" = "moveWordForwardAndModifySelection:"; | |
"~B" = "moveWordBackwardAndModifySelection:"; | |
"^f" = "moveForward:"; | |
"^b" = "moveBackward:"; | |
"^F" = "moveForwardAndModifySelection:"; | |
"^B" = "moveBackwardAndModifySelection:"; | |
"^a" = "moveToBeginningOfParagraph:"; | |
"^e" = "moveToEndOfParagraph:"; | |
"^A" = "moveToBeginningOfParagraphAndModifySelection:"; | |
"^E" = "moveToEndOfParagraphAndModifySelection:"; | |
"^n" = "moveDown:"; | |
"^p" = "moveUp:"; | |
"^N" = "moveDownAndModifySelection:"; | |
"^P" = "moveUpAndModifySelection:"; | |
"~v" = "pageUp:"; | |
"~V" = "pageUpAndModifySelection:"; | |
"^v" = "pageDown:"; | |
"^V" = "pageDownAndModifySelection:"; | |
"^l" = "centerSelectionInVisibleArea:"; | |
"^x" = { | |
"^s" = "setMark:"; | |
"^x" = "swapWithMark:"; | |
"^m" = "selectToMark:"; | |
}; | |
"~<" = "moveToBeginningOfDocument:"; | |
"~>" = "moveToEndOfDocument:"; | |
/* Move in Russian */ | |
"~а" = "moveWordForward:"; | |
"~и" = "moveWordBackward:"; | |
"~А" = "moveWordForwardAndModifySelection:"; | |
"~И" = "moveWordBackwardAndModifySelection:"; | |
"^а" = "moveForward:"; | |
"^и" = "moveBackward:"; | |
"^А" = "moveForwardAndModifySelection:"; | |
"^И" = "moveBackwardAndModifySelection:"; | |
"^ф" = "moveToBeginningOfParagraph:"; | |
"^у" = "moveToEndOfParagraph:"; | |
"^Ф" = "moveToBeginningOfParagraphAndModifySelection:"; | |
"^У" = "moveToEndOfParagraphAndModifySelection:"; | |
"^т" = "moveDown:"; | |
"^з" = "moveUp:"; | |
"^Т" = "moveDownAndModifySelection:"; | |
"^З" = "moveUpAndModifySelection:"; | |
"~м" = "pageUp:"; | |
"~М" = "pageUpAndModifySelection:"; | |
"^м" = "pageDown:"; | |
"^М" = "pageDownAndModifySelection:"; | |
"^д" = "centerSelectionInVisibleArea:"; | |
"^ч" = { | |
"^ы" = "setMark:"; | |
"^ч" = "swapWithMark:"; | |
"^ь" = "selectToMark:"; | |
}; | |
"~Б" = "moveToBeginningOfDocument:"; | |
"~Ю" = "moveToEndOfDocument:"; | |
/* Change */ | |
"^j" = "insertNewLine:"; | |
"^m" = "insertNewlineIgnoringFieldEditor:"; | |
"^h" = "deleteBackward:"; | |
"^d" = "deleteForward:"; | |
"^w" = "deleteWordBackward:"; | |
"~d" = "deleteWordForward:"; | |
"^u" = "deleteToBeginningOfParagraph:"; | |
"^k" = "deleteToEndOfParagraph:"; | |
"^o" = ("insertNewlineIgnoringFieldEditor:", "moveBackward:"); | |
"~o" = ("moveToEndOfParagraph:", "insertNewlineIgnoringFieldEditor:"); | |
"^y" = "yank:"; | |
"^Y" = "yankPop:"; | |
"^/" = "undo:"; | |
"^?" = "redo:"; | |
"^t" = "transpose:"; | |
/* Change in Russian */ | |
"^о" = "insertNewLine:"; | |
"^ь" = "insertNewlineIgnoringFieldEditor:"; | |
"^р" = "deleteBackward:"; | |
"^в" = "deleteForward:"; | |
"^ц" = "deleteWordBackward:"; | |
"~в" = "deleteWordForward:"; | |
"^г" = "deleteToBeginningOfParagraph:"; | |
"^л" = "deleteToEndOfParagraph:"; | |
"^щ" = ("insertNewlineIgnoringFieldEditor:", "moveBackward:"); | |
"~щ" = ("moveToEndOfParagraph:", "insertNewlineIgnoringFieldEditor:"); | |
"^н" = "yank:"; | |
"^Н" = "yankPop:"; | |
"^е" = "transpose:"; | |
/* Change case */ | |
"~l" = ("lowercaseWord:", "moveWordForward:", "moveWordBackward:"); | |
"~u" = ("uppercaseWord:", "moveWordForward:", "moveWordBackward:"); | |
"~c" = ("capitalizeWord:", "moveWordForward:", "moveWordBackward:"); | |
/* Change case in Russian */ | |
"~д" = ("lowercaseWord:", "moveWordForward:", "moveWordBackward:"); | |
"~г" = ("uppercaseWord:", "moveWordForward:", "moveWordBackward:"); | |
"~с" = ("capitalizeWord:", "moveWordForward:", "moveWordBackward:"); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment