Re: Defining new visual-mode motions?

2007-06-02 Thread Andy Wokula

Yegappan Lakshmanan schrieb:

Hi,

On 6/2/07, Andy Wokula [EMAIL PROTECTED] wrote:


Within a function (or script or Ex-mode), the visual area is not 
turned off

between ex commands, because there is no actual mode switching
... IMHO.

I don't know if this is mentioned in the help.



According to :help mode-switching, it is not possible to enter visual 
mode

from Ex or command-line mode. Either the table under :help i_esc needs
to be updated or this needs to be fixed.

According to that table, you can enter visual mode only from either 
normal or

select modes.

- Yegappan


The following is possible:
   Q
enter Ex mode
   normal v
   normal eee
extend visual area
   visual
quit Ex mode, enter Visual mode

Hmm, seems the table needs an update.
Unfortunately, :visual is ambigious.

--
Regards,
Andy


Defining new visual-mode motions?

2007-05-31 Thread Joseph Barker
Hello, all.

I was recently helping someone out with a vim script (camelcasemotion.vim) 
which adds additional motion commands (they treat camel-cased words 
(WordsLikeThis) as separate words, rather than as a single word). This is 
easy enough to do in normal and operator-pending mode. It seems to be very 
complicated to do this in visual mode, though -- calling a function (or 
anything that lets you move the cursor) seems to force you to leave visual 
mode (i.e., doing `vmap ,w :C-Ucall MoveCursor()` will move the cursor to 
the right place, but you're no longer in visual mode).

My approach to this was to call the movement function, set a mark, select 
the previous visual block (with gv) and then jump to the mark that was 
previously set. The mapping that I created to deal with this is the 
following:

vmap silent ,w @=\33:\25call 
SIDCamelCaseMotion('w',1,'v')CRCRm`gvg``

This seems somewhat inelegant, and also clobbers a mark to be able to 
accomplish its magic. Is there an easier way to accomplish the same thing? 
It seems like there should be, but I was unable to figure one out.

Thanks for your help.

JKB