Some suggestions that almost do what you ask:
In lisp code, you can sort what you want using the sexp movement commands. To jump to the beginning of an expression from somewhere in between, use the backward-up-list , which is bound to MCu . In your example, this will lead you to an open parenthesis. To move backward through individual items in a list, use backward-sexp bound to MCb ; forward-sexp moves the other way and binds to MCf . From the very beginning of sexp, you can move on to the next with MCn ; back with MCp .
None of these commands look at the physical line that you are on, so they will return or go on several lines.
Other options include Ace Jump mode , which is a very smooth way to quickly jump to the beginning of any word visible on the screen. This may eliminate the need for line specific commands. For quick movement within the line, I usually use Mf and Mb to jump words. Holding the M key down and pressing b or f fast enough to end up using this by default most of the time.
Edit:
I forgot another nice command - back-to-indentation , tied to Mm . This will return you to the first character with no spaces in the string. You could advise this to behave normally on the first call, and then return to the beginning of the line in the second call:
(defadvice back-to-indentation (around back-to-back) (if (eq last-command this-command) (beginning-of-line) ad-do-it)) (ad-activate 'back-to-indentation)
source share