>> vnoremap gt <esc>`>:exec 'norm '.visualmode().'`<lt>'<cr> >> vnoremap gb <esc>`<lt>:exec 'norm '.visualmode().'`>'<cr> > > 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?
Sorry it's taken me a while to get back on this...life got a little crazy. Buried away in the help just above :help :map-verbose and in the section :help map-listing one finds this little morsel of help: Note: When using mappings for Visual mode, you can use the "'<" mark, which is the start of the last selected Visual area in the current buffer |'<|. It's also possible to read the help at :help '< either way, as it refers to the "last selected visual area" which in visual-mode could mean either "the area selected before the the one I'm currently in", or "the current visual selection which is now the 'last selected visual area' because I'm now doing something other than selecting". It might help to have an extra sentence at this help to say something like If you are currently in visual mode, this refers to the beginning/end of the *previous* visual selection Hope this helps shed light on your question rather than muddy the waters. -tim