XEasyMotion
XEasyMotion copied to clipboard
Usability suggestions
This is a pretty cool idea! However, I think the experience can be made better. The current way feels a little too weird. Like I'm wiggling back and forth to get it right, which lacks a feeling of precision. I'm not sure if you intended this to target Vim users in particular, but I'd like to suggest some things to make it easier to use:
+---+---+---+
| 1 | 2 | 3 |
+---+---+---+
| 4 | 5 | 6 |
+---+---+---+
| 7 | 8 | 9 |
+---+---+---+
- Split the screen into 9 sections. From the beginning, always start in section 5. I think this will make directional movement feel more natural. The current way feels like I'm pushing and squeezing the cursor, not pointing it.
-
hjklhighlights a section. If I pressed the wrong key or changed my mind, I don't have to start over. - Taking from
:h i_CTRL-X_CTRL-N, pressingctrl-nwill split the highlighted section into 9 more sections. The previous splits are dimmed and stay on the screen. This is repeatable up to a certain point where it's impractical. - Taking from
:h i_CTRL-X_CTRL-P, pressingctrl-pwill go back to the previously split sections and restore the selection of the section. - If I move the selection outside of the current section (e.g. press
hwhile on section 4), this would be the equivalent of pressingctrl-pand moving to the section in the direction of the movement. - Taking from
:h complete_CTRL-Y, pressingctrl-ywill perform the click. Holding shift could perform the right click. - Shift +
hjklemulates accelerated mouse movement, but is constrained to the currently selected section.
Start in section 5, press l to move to section 6, then select it with ctrl-n
+-----------+-----------+-----------+ +-----------+-----------+-----------+
| | | | |###########|###########|###########|
| | | | |###########|###########|###########|
| 1 | 2 | 3 | |###########|###########|###########|
| | | | |###########|###########|###########|
| | | | |###########|###########|###########|
+-----------+-----------+-----------+ +-----------+-----------+---+---+---+
| | | | |###########|###########| 1 | 2 | 3 |
| | | | |###########|###########+---+---+---+
| 4 | 5 | 6 | -> |###########|###########| 4 | 5 | 6 |
| | | | |###########|###########+---+---+---+
| | | | |###########|###########| 7 | 8 | 9 |
+-----------+-----------+-----------+ +-----------+-----------+---+---+---+
| | | | |###########|###########|###########|
| | | | |###########|###########|###########|
| 7 | 8 | 9 | |###########|###########|###########|
| | | | |###########|###########|###########|
| | | | |###########|###########|###########|
+-----------+-----------+-----------+ +-----------+-----------+-----------+
Miscellaneous
- When toggling XEasyMotion, it would be nice to have a key that restored the section that was last used so I could perform more cursor actions in the same general area.
- No animations, or have an option to disable animations. The latency makes me unsure if I'm pressing the right keys if I move at a reasonable pace.
- Turn off XEasyMotion if the mouse is clicked manually.
- It would be nice if other keys were disabled while XEasyMotion was enabled.
@tweekmonster regarding #2: you can move the selection with Shift+h/j/k/l not to start again