Sublime Keymap
Cursor Movement
--------------------------------------------------
* ⌃F Forward by character
* ⌃B Backward by character
* ⌥F Forward by words
* ⌥B Backward by words
* ⌃N Next line
* ⌃P Previous line
* ⌃A Beginning of line
* ⌃E End of line
* ⌥P Beginning of file
* ⌥N End of file
Selection
--------------------------------------------------
* ⌥⌘D Skip selection
* ⌥⌘F Replace selected
* ⌘G Go to next match
* ⇧⌘G Go to previous match
* ⇧⌃F Forward by character
* F5 Sort lines
* ⇧⌃B Backward by character
* ⇧⌥F Forward by words
* ⇧⌥B Backward by words
* ⇧⌃N To next line
* ⇧⌃P To previous line
* ⇧⌃E To end of line
* ⇧⌃B To beginning of line
* ⇧⌥N To end of file
* ⇧⌥P To beginning of file
* ⌃⌥P New cursor up
* ⌃⌥N New cursor down
Text Commands
--------------------------------------------------
* ⌃⌘P Swap line up
* ⌃⌘N Swap line down
* ⌃] Indent
* ⌃[ Unindent
* ⌃D Delete character forward
* ⌥D Delete word forward
* ⌃⌥D Delete word backward
* ⌃/ Toggle comment line
Window Management
--------------------------------------------------
* ⇧⌃⌥⌘W Close All Windows
* ⌃⌥⌘D Toggle drawer
* ⌃⌥⌘M Toggle mini map
* ⇧⌘T Reopen Tab
File Management
--------------------------------------------------
* ⌘N New File
* ⇧⌘M Open Last Migration (Rails)
* ⇧⌃⌘M Show Migrations (Rails)
* ⌘F Find and Replace
* ⇧⌘F Find and Replace in Project
* ⌃⌘R Show file in sidebar
Text Case
--------------------------------------------------
* ⌥⌘U Uppercase
* ⌥⌘L Lowercase
* ⌃⌥⌘U Titlecase
Text Insertion
--------------------------------------------------
* ⌥⌘= Hash Rocket
* ⌥⌘- Stabby Arrow
* ⇧⌥⌘_ To Underscore
* ⌃⌥⌘= Convert Hash rocket
* ⇧⌃: String to symbol
* ⇧⌘" Symbol to string
* ⌥⌘C Color Picker
Sublime Linter
--------------------------------------------------
* ⌃⌘L Show lint errors
Ruby Test
--------------------------------------------------
* ⇧⌘R Run Single Test
* ⌘R All Tests
* ⇧⌘E Run Last Test
* ⇧⌘L Run Last Test
* ⇧⌘X Toggle Test Console
* ⇧⌥V Verify File
* ⌃⌘. Switch Code/Test
* ⇧⌘C Switch Code/Test (Split View)[
// Cursor Movement
// ⌃F Forward by words
{ "keys": ["alt+f"], "command": "move", "args": { "by": "wordends", "forward": true } },
// ⌃B Backward by words
{ "keys": ["alt+b"], "command": "move", "args": { "by": "words", "forward": false } },
// ⌃A Beginning of line (soft)
{ "keys": ["ctrl+a"], "command": "move_to", "args": { "to": "bol" } },
// ⌥P Beginning of file
{ "keys": ["alt+p"], "command": "move_to", "args": { "to": "bof" } },
// ⌥N End of file
{ "keys": ["alt+n"], "command": "move_to", "args": { "to": "eof" } },
// Selection
// ⌥⌘D Skip selection
{ "keys": ["alt+super+d"], "command": "find_under_expand_skip" },
// ⌥⌘F Replace selection
{ "keys": ["alt+super+f"], "command": "replace_next" },
// ⌘G Next match
{ "keys": ["super+g"], "command": "find_next" },
// ⇧⌘G Previous match
{ "keys": ["shift+super+g"], "command": "find_prev" },
// F5 Sort lines
{ "keys": ["f5"], "command": "sort_lines", "args": {"case_sensitive": false} },
// ⇧⌥F Forward by words
{ "keys": ["shift+alt+f"], "command": "move", "args": { "by": "wordends", "forward": true, "extend": true } },
// ⇧⌥B Backward by words
{ "keys": ["shift+alt+b"], "command": "move", "args": { "by": "words", "forward": false, "extend": true } },
// ⇧⌃P To Previous line
{ "keys": ["shift+ctrl+p"], "command": "move", "args": { "by": "lines", "forward": false, "extend": true } },
// ⇧⌥N To End of File
{ "keys": ["shift+alt+n"], "command": "move_to", "args": { "to": "eof", "extend": true } },
// ⇧⌥P To Begining of File
{ "keys": ["shift+alt+p"], "command": "move_to", "args": { "to": "bof", "extend": true } },
// ⌃⌥P New Cursor Up
{ "keys": ["ctrl+alt+n"], "command": "select_lines", "args": { "by": "characters", "forward": true } },
// ⌃⌥N New Cursor Down
{ "keys": ["ctrl+alt+p"], "command": "select_lines", "args": { "by": "characters", "forward": false } },
// Text commands
// ⌃⌘P Swap line Up
{ "keys": ["ctrl+super+p"], "command": "swap_line_up" },
// ⌃⌘N Swap line Down
{ "keys": ["ctrl+super+n"], "command": "swap_line_down" },
// ⌃] Indent
{ "keys": ["ctrl+]"], "command": "indent" },
// ⌃[ Unindent
{ "keys": ["ctrl+["], "command": "unindent" },
// ⌥D Delete word Forward
{ "keys": ["alt+d"], "command": "delete_word", "args": { "forward": true, "sub_words": true } },
// ⌃⌥D Delete word Backward
{ "keys": ["ctrl+alt+d"], "command": "delete_word", "args": { "forward": false, "sub_words": true } },
// ⌃/ Toggle comment
{ "keys": ["ctrl+forward_slash"], "command": "toggle_comment", "args": { "block": false } },
// Window Management
// ⇧⌃⌥⌘W Close All windows
{ "keys": ["shift+ctrl+alt+super+w"], "command": "close_all" },
// ⌃⌥⌘D Toggle Drawer
{ "keys": ["ctrl+alt+super+d"], "command": "toggle_side_bar" },
// ⌃⌥⌘M Toggle Mini Map
{ "keys": ["ctrl+alt+super+m"], "command": "toggle_minimap" },
// ⇧⌘T Reopen tab
{ "keys": ["shift+super+t"], "command": "reopen_last_file" },
// File Management
// ⌘N New file
{ "keys": ["super+n"], "command": "advanced_new_file_new"},
// ⇧⌘M Open Latest Migration
{ "keys": ["shift+super+m"], "command": "rails_latest_migration"},
// ⇧⌃⌘M Show Migrations List
{ "keys": ["shift+ctrl+super+m"], "command": "rails_migrations_list"},
// ⌘F Find and Replace
// { "keys": ["super+f"], "command": "show_panel", "args": {"panel": "replace"} },
// ⇧⌘F Find and Replace in Project
// { "keys": ["shiftsuper+f"], "command": "show_panel", "args": {"panel": "find_in_files"} },
// ⌃⌘R Show file in sidebar
{ "keys": ["ctrl+super+r"], "command": "reveal_in_side_bar" },
// Text case
// ⌥⌘U Uppercase
{ "keys": ["alt+super+u"], "command": "upper_case" },
// ⌥⌘L Lowercase
{ "keys": ["alt+super+l"], "command": "lower_case" },
// ⌃⌥⌘U Titlecase
{ "keys": ["ctrl+alt+super+u"], "command": "title_case" },
// Text Insertion
// ⌥⌘= Hash Rocket
{ "keys": ["alt+super+="], "command": "insert_snippet", "args": {"contents": "=>"} },
// ⌥⌘- Stabby Arrow
{ "keys": ["alt+super+-"], "command": "insert_snippet", "args": {"contents": "->"} },
// ⇧⌥⌘_ To Underscore
{ "keys": ["shift+ctrl+-"], "command": "insert_snippet", "args": {"name": "Packages/User/snippets/sh-string-to-underline.sublime-snippet"} },
// ⌃⌥⌘= Convert Hashe Rockets
{ "keys": ["ctrl+alt+super+="], "command": "insert_snippet", "args": {"name": "Packages/User/snippets/ruby-hash-convert.sublime-snippet"} },
// ⇧⌃: String to Symbol
{ "keys": ["shift+ctrl+;"], "command": "insert_snippet", "args": {"name": "Packages/User/snippets/ruby-symbolize.sublime-snippet"} },
// ⇧⌘" Symbol to String
{ "keys": ["shift+super+'"], "command": "insert_snippet", "args": {"name": "Packages/User/snippets/ruby-unsymbolize.sublime-snippet"} },
// ⌥⌘CColor picker
{ "keys": ["alt+super+c"], "command": "color_pick" },
// ⌃⌘L Sublime linter
{ "keys": ["ctrl+super+l"], "command": "sublimelinter_show_errors", "args": {"action": "lint", "show_popup": true} },
// Match Backtick Quotes
{ "keys": ["`"], "command": "insert_snippet", "args": {"name": "Packages/User/snippets/All-backticks.sublime-snippet"} },
// Disable arrows
{ "keys": ["up"], "command": "insert_snippet", "args": {"contents": ""} },
{ "keys": ["down"], "command": "insert_snippet", "args": {"contents": ""} },
{ "keys": ["right"], "command": "insert_snippet", "args": {"contents": ""} },
{ "keys": ["left"], "command": "insert_snippet", "args": {"contents": ""} },
{ "keys": ["super+up"], "command": "insert_snippet", "args": {"contents": ""} },
{ "keys": ["super+down"], "command": "insert_snippet", "args": {"contents": ""} },
{ "keys": ["super+right"], "command": "insert_snippet", "args": {"contents": ""} },
{ "keys": ["super+left"], "command": "insert_snippet", "args": {"contents": ""} },
{ "keys": ["shift+super+up"], "command": "insert_snippet", "args": {"contents": ""} },
{ "keys": ["shift+super+down"], "command": "insert_snippet", "args": {"contents": ""} },
{ "keys": ["shift+super+left"], "command": "insert_snippet", "args": {"contents": ""} },
{ "keys": ["shift+super+right"], "command": "insert_snippet", "args": {"contents": ""} },
{ "keys": ["alt+up"], "command": "insert_snippet", "args": {"contents": ""} },
{ "keys": ["alt+down"], "command": "insert_snippet", "args": {"contents": ""} },
{ "keys": ["alt+left"], "command": "insert_snippet", "args": {"contents": ""} },
{ "keys": ["alt+right"], "command": "insert_snippet", "args": {"contents": ""} },
{ "keys": ["shift+alt+up"], "command": "insert_snippet", "args": {"contents": ""} },
{ "keys": ["shift+alt+down"], "command": "insert_snippet", "args": {"contents": ""} },
{ "keys": ["shift+alt+left"], "command": "insert_snippet", "args": {"contents": ""} },
{ "keys": ["shift+alt+right"], "command": "insert_snippet", "args": {"contents": ""} },
{ "keys": ["ctrl+up"], "command": "insert_snippet", "args": {"contents": ""} },
{ "keys": ["ctrl+down"], "command": "insert_snippet", "args": {"contents": ""} },
{ "keys": ["ctrl+right"], "command": "insert_snippet", "args": {"contents": ""} },
{ "keys": ["ctrl+left"], "command": "insert_snippet", "args": {"contents": ""} },
{ "keys": ["ctrl+super+up"], "command": "insert_snippet", "args": {"contents": ""} },
{ "keys": ["ctrl+super+down"], "command": "insert_snippet", "args": {"contents": ""} },
{ "keys": ["ctrl+alt+up"], "command": "insert_snippet", "args": {"contents": ""} },
{ "keys": ["ctrl+alt+down"], "command": "insert_snippet", "args": {"contents": ""} },
{ "keys": ["ctrl+alt+left"], "command": "insert_snippet", "args": {"contents": ""} },
{ "keys": ["ctrl+alt+right"], "command": "insert_snippet", "args": {"contents": ""} },
{ "keys": ["shift+ctrl+up"], "command": "insert_snippet", "args": {"contents": ""} },
{ "keys": ["shift+ctrl+down"], "command": "insert_snippet", "args": {"contents": ""} },
{ "keys": ["shift+ctrl+left"], "command": "insert_snippet", "args": {"contents": ""} },
{ "keys": ["shift+ctrl+right"], "command": "insert_snippet", "args": {"contents": ""} },
// Ruby Test
// ⇧⌘R Run Single Test
{ "keys": ["shift+super+r"], "command": "run_single_ruby_test",
"context": [ { "key": "selector", "operator": "equal",
"operand": "source.ruby, source.rspec, text.gherkin.feature"
} ]
},
// ⌘R All Tests
{ "keys": ["super+r"], "command": "run_all_ruby_test",
"context": [ { "key": "selector", "operator": "equal",
"operand": "source.ruby, source.rspec, text.gherkin.feature"
} ]
},
// ⇧⌘E Run Last Test
{ "keys": ["shift+super+e"], "command": "run_last_ruby_test",
"context": [ { "key": "selector", "operator": "equal",
"operand": "source.ruby, source.rspec, text.gherkin.feature"
} ]
},
// ⇧⌘L Run Last Test
{ "keys": ["shift+super+l"], "command": "run_last_ruby_test",
"context": [ { "key": "selector", "operator": "equal",
"operand": "source.ruby, source.rspec, text.gherkin.feature"
} ]
},
// ⇧⌘X Toggle Test Console
{ "keys": ["shift+super+x"], "command": "show_test_panel" },
// ⇧⌥V Verify File
{ "keys": ["shift+alt+v"], "command": "verify_ruby_file",
"context": [ { "key": "selector", "operator": "equal",
"operand": "source.ruby"
} ]
},
// ⌃⌘. Switch between code and test in single mode
{ "keys": ["ctrl+super+period"],
"command": "switch_between_code_and_test",
"args": {"split_view": true},
"context": [ { "key": "selector", "operator": "equal",
"operand": "source.ruby, source.rspec, text.gherkin.feature"
} ]
},
// ⇧⌘C Switch between code and test in split view
{ "keys": ["shift+super+c"], "command": "generate_file" }
]