Hands-on
Hands-on is a Keymap extension for Visual Studio Code that aims at dramatical increase of coding experience by keeping your hands in typing position at all times, even during navigation. This is an extended port of hands-on for atom.
Hands-on puts navigation and control keys under the right hand, where it is naturally located when typing. This way navigation actions would not alter hand position, and you can proceed with typing immediately.
Hands-on mode is activated by holding left Alt key (Command on Mac). When the mode is active, some of the letter key act as navigation keys:
key |
action |
Home row |
essential navigation |
Alt J |
move left one character |
Alt K |
move down |
Alt L |
move up |
Alt : |
move right |
Lower row |
works on bigger distance |
Alt M |
move to the line start Home (first non-whitespace character of a wrapped part of the line) |
Alt , |
page down |
Alt . |
page up |
Alt / |
move to the line end End (last non-whitespace character of a wrapped part of the line) |
Adding Ctrl |
increases impact |
Ctrl Alt J |
move left one word |
Ctrl Alt K |
move down 5 lines |
Ctrl Alt L |
move up 5 lines |
Ctrl Alt : |
move right one word |
Ctrl Alt M |
move to the (whole) line start |
Ctrl Alt , |
move to the file start |
Ctrl Alt . |
move to the file end |
Ctrl Alt / |
move to the (whole) line end |
Adding Shift |
also performs selection |
... |
...for example... |
Alt Shift J |
select one character to the left |
Ctrl Alt Shift L |
select 5 lines above |
Ctrl Alt Shift . |
select everything from here to the end of file |
... |
...and so on... |
Top row |
performs scrolling |
Alt I |
scroll down |
Alt O |
scroll up |
Alt Ctrl I |
scroll down stronger |
Alt Ctrl O |
scroll up stronger |
Useful extras |
|
Alt ' |
type newline Enter |
Alt [ |
erase to the left Backspace |
Alt ] |
erase to the right Delete |
Ctrl Alt [ |
erase word to the left |
Ctrl Alt ] |
erase word to the right |
Using Meta (Command on Mac, Win+Alt on Windowss) |
performs group navigation |
Meta J |
switch to the group on the left |
Meta K |
switch to the group below |
Meta L |
switch to the group above |
Meta : |
switch to the group on the right |
Meta U |
decrease group width |
Meta I |
decrease group height |
Meta O |
increase group height |
Meta P |
increase group width |
note: Meta stands for Win+Alt on Windows (not just Win) in order to avoid conflicts with sytem hotkeys
note: there is no additional keybinding to split or close group provided by hands-on, because it is available in Visual Studio Code by combinations like Ctrl / and Ctrl W
Hands-on is layout-agnostic, meaning that it is tied to keycodes, and always resides in the same place under your right hand, even if you use Dvorak for Programmers. For example, in German layout the key to press for moving to the end of the line would be Alt -, instead of Alt / for US layout (but physical position of the key is intact).
I am from the world of emacs, the main feature I have been missing so far was the opportunity to navigate without moving my hands away from their normal position (and therefore avoid briefly looking at the keyboard when puting them back in order to properly position).
Base navigation line layout ← ↓ ↑ → was inspired by vim. Main navigation keys moved one position to the right eventually (in vim it starts with the H key), which is more natural position of the right hand.
https://asvd.github.io
https://twitter.com/asvd0