XEasyMotion icon indicating copy to clipboard operation
XEasyMotion copied to clipboard

Usability suggestions

Open tweekmonster opened this issue 9 years ago • 1 comments

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 |
+---+---+---+
  1. 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.
  2. hjkl highlights a section. If I pressed the wrong key or changed my mind, I don't have to start over.
  3. Taking from :h i_CTRL-X_CTRL-N, pressing ctrl-n will 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.
  4. Taking from :h i_CTRL-X_CTRL-P, pressing ctrl-p will go back to the previously split sections and restore the selection of the section.
  5. If I move the selection outside of the current section (e.g. press h while on section 4), this would be the equivalent of pressing ctrl-p and moving to the section in the direction of the movement.
  6. Taking from :h complete_CTRL-Y, pressing ctrl-y will perform the click. Holding shift could perform the right click.
  7. Shift + hjkl emulates 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 avatar Jun 18 '16 20:06 tweekmonster

@tweekmonster regarding #2: you can move the selection with Shift+h/j/k/l not to start again

vnikk avatar Jan 05 '18 13:01 vnikk