winterTTr / ace-jump-mode

a quick cursor jump mode for emacs
https://github.com/winterTTr/ace-jump-mode/wiki
609 stars 72 forks source link

Enumerate candidates by distance from point #28

Open immerrr opened 11 years ago

immerrr commented 11 years ago

This probably looks like a generalization of issue #8.

I'd guess that most of the time my jumps aren't too long and by customizing the first letters to reside on my home row & by ordering the candidates by distance from point this can be harnessed to reduce finger travel even more.

Is it easy or at all possible to do that? Do I suggest anything obvious that has already been tried and failed? :)

winterTTr commented 11 years ago

Actually, I have thought the same kind of problem before, but I do not find a good way to define "distance". Maybe row based, column based or straight-line based, that is a potential problem. :-)

So right now, there is no "distance" based candidates optimization logic in implementation.

I will try that, but maybe cannot give a very good solution at present.

immerrr commented 11 years ago

I'd think row-based, yes, like, start from bol to eol on current row and then the same candidates from alternating rows: one up and one down, and so on.

driessen commented 11 years ago

I like this idea. Could it be a good idea to start from point and working forward to end of current window, then backwards from point to start of window. Perhaps it is easier to implement then alternating upwards and downwards. It would make small jumps forward quick and easy all the time, and unless there are many hits between point and end of window, small jumps backward would also be easy.

ksjogo commented 10 years ago

Was there any further development on this? I would really like to save one extra press. :)

winterTTr commented 10 years ago

OK, I think many people want this feature. I may consider to implement a version and also with some other already known solution. Please wait a while :-)

romanodesouza commented 9 years ago

Row-based :+1:

bcowgill commented 8 years ago

Just tried ace mode and it's fantastic. I like the idea of keeping the fingers on the home row though. Until you have it implemented I'd like to just set the motion alphabet setting. I don't know emacs lisp well enough though.

How would you change the lisp below to work?

;; configure the ace jump keys to try and keep your fingers on ;; the home row as much as possible (setq ace-jump-mode-move-keys (j f k d l s ; a h g u r i e o w p q n v m c , x . z y t b J F K D L S A H G U R I E O W P Q N V M C X Z Y T B))

bcowgill commented 8 years ago

Figured it out very sweet ;; configure the ace jump keys to try and keep your fingers on ;; the home row as much as possible (setq ace-jump-mode-move-keys '(?j ?f ?h ?g ?u ?r ?n ?v ?y ?b ?m ?t ?k ?d ?i ?e ?, ?c ?l ?s ?; ?a ?o ?w ?. ?x ?p ?q ?z ?J ?F ?H ?G ?U ?R ?N ?V ?Y ?B ?M ?T ?K ?D ?I ?E ?C ?L ?S ?A ?O ?W ?X ?P ?Q ?Z))