daytonn
8/30/2014 - 10:17 PM

Sublime Keymap

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" }
]