Andy Wokula schrieb:
Tim Chase schrieb:
How can I move the cursor the start of the visual selection?
With the "o" command, yes.  But how can I make sure the cursor
is at the start while visual mode is on?  The "`<" motion
followed by "gv" sets the cursor back to the end if it was
there.

I think it sounds like you want something like the following:

vnoremap gt <esc>`>:exec 'norm '.visualmode().'`<lt>'<cr>
vnoremap gb <esc>`<lt>:exec 'norm '.visualmode().'`>'<cr>

which gives you a "Go to the Top" and "Go to the Bottom" mapping within visual mode.

It can be a little funky in blockwise visual-mode, if your '< and '> points are top-right and bottom-left (rather than top-left and bottom-right), as the "top" will go to the top-right, not the top-left. I haven't figured out a good way to do this without considerably more code in the mapping (save the column of '< and then "gvO" to go back to visual-mode but in the other corner and then compare the columns to see which you want, perhaps needing to switch back...it's ugly).

However, it should work fine in character-wise and line-wise visual modes.

HTH,

-tim

I don't understand why this works.

There must be a difference between
    `>v`<
and
    :normal `>v`<

"v" defines a new visual area and overwrites the `<,`> markers.  Why
does "`<" after ":normal" move the cursor to the start of the
_previously_ selected visual area?

Thx,
Andy

Ah, with a later Vim7 there is no difference any more.
Obviously this has been fixed with patch 125, dated August 2006.
Ok, this took three months till I got it ...

--
Regards,
Andy

Reply via email to