ctrl+shift+p filters: :st2 :st3 :win :osx :linux
Browse

Contextual​Move

by davidson16807 ALL

Ctrl+IJKL to move. Other keys toggle move behavior. You can move by characters, words, search results, and more.

Details

Installs

  • Total 277
  • Win 160
  • Mac 67
  • Linux 50
Dec 6 Dec 5 Dec 4 Dec 3 Dec 2 Dec 1 Nov 30 Nov 29 Nov 28 Nov 27 Nov 26 Nov 25 Nov 24 Nov 23 Nov 22 Nov 21 Nov 20 Nov 19 Nov 18 Nov 17 Nov 16 Nov 15 Nov 14 Nov 13 Nov 12 Nov 11 Nov 10 Nov 9 Nov 8 Nov 7 Nov 6 Nov 5 Nov 4 Nov 3 Nov 2 Nov 1 Oct 31 Oct 30 Oct 29 Oct 28 Oct 27 Oct 26 Oct 25 Oct 24 Oct 23
Windows 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Mac 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Linux 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Readme

Source
raw.​githubusercontent.​com

Sublime Contexual Move Keys

Ctrl+IJKL to move. Other keys toggle move behavior. You can move across characters, words, search results, tabs, arguments, functions, and more.

The Gist

  • Ctrl+IJKL are contextual arrow keys. By default, they move the cursor one character at a time.
  • Ctrl+Shift+IJKL will extend the selection.
  • Ctrl+Alt+IJKL will delete text (“alter it”).
  • Ctrl+Alt+Shift+IJKL will move text (“alter by shifting around”).
  • Alt+JL will undo/redo changes to text.
  • If you open the command palette or an autocomplete dropdown, they'll move through the options just like regular arrow keys.
  • If you open the search panel, they'll move between search results.
  • You can press other keys to modify move behavior, shown below.
Hotkey Move Behavior Mneumonic
Ctrl+. Move one character or line at a time . denotes characters in regex
Ctrl+_ Move by subwords _ delimits subwords in C-like languages
Ctrl+, Move by words , delimits words in natural language (Ctrl+spacebar is already taken)
Ctrl+1 Move through comma separated list items grammar rules are mapped to numbers, sorted by precedence

Ctrl+2| Move through functions | grammar rules are mapped to numbers, sorted by precedence Ctrl+3| Move through classes | grammar rules are mapped to numbers, sorted by precedence Ctrl++| Move through pages and tabs | + looks like the cursor you get when you click the middle mouse button (Ctrl+tab is already taken) Ctrl+pipe| Add cursors to adjacent lines. Press escape to return to a single selection and retrn to default behavior | The “pipe” character looks like a cursor Ctrl+[| fold/unfold | Resembles existing shortcut Ctrl+]| indent/unindent and transpose by line | Resembles existing shortcut Ctrl+f2| Move through bookmarks | Resembles existing shortcut Ctrl+f6| Move through spelling errors | Resembles existing shortcut Ctrl+;| Move to the beginning/end of the list of things being traversed, which can vary based on the other hotkeys. This behavior turns itself off after a single use. | ; is next to IJKL and allows sweeping motion across the keyboard Ctrl+enter| Create a new thing being traversed above/below, which can vary based on the other hotkeys. This behavior turns itself off after a single use. | enter adds new lines

  • You can combine the hotkeys above with modifiers in useful ways. For instance: ** pressing Ctrl+1, Ctrl+;, Ctrl+Alt+L will delete everything to the end of a comma separated list ** pressing Ctrl+2 followed by any combination of Ctrl+Alt+Shift+IK will change the order of functions in the document. ** pressing Ctrl++, followed by any combination of Ctrl+Alt+JL will close tabs.

  • Most obvious combinations are already supported. You can see a full list of implemented features here

FAQ

Why?

Plenty of reasons:

  • Provide vim-like navigation without the steep learning curve

  • Vastly expand a user's hotkey repertoire without taxing memory

  • Eliminate the need to leave the home row when navigating through text

  • Free up keyboard real estate without loss of utility

  • Create a sensible framework on which users can create their own hotkeys

Why not Ctrl+WASD?

Because Ctrl+S and Ctrl+A are some of the most widely adopted hotkeys of all time and I don't plan to remap their behavior. Fortunately, the plugin is designed mostly to provide navigation for times when the mouse cannot be easily switched to. Many of the standard hotkeys only exist because they worked well regardless of whether the mouse is available, so we have plenty of options to work with on the right hand side.

Why not Ctrl+HJKL?

Because this is not vim. The vast majority of users are already familiar with the “inverse T” style of navigation, thanks largely to WASD and the regular arrow keys. IJKL is also a common choice for other software, too. For instance, Kerbal Space Program uses IJKL to handle translations. Sublime itself uses IJKL to traverse the “Folders” side bar.

Why not use Vim?

See above. This is a plugin for mortals.

Why not just extend behavior to the regular arrow keys?

Because moving your hand interrupts your workflow. I want to keep both hands on the home row for as long as I can.

You changed my favorite hotkey!

That wasn't a question, but yes, it's possible I did that. I tried to avoid modifying standard hotkeys on the left hand side of the keyboard. As with any plugin, you can remap the keys as you see fit.