Do you have a CursorHold au command? Do this to find out:
:au CursorHold
If you do then you are getting the same issue as I do in a lot of places.
Apparently the CursorHold au will generate some input command which will
override pending commands. If you have "showcmd" set then you can see the
effect.
1. Move to a location (or leave insert mode by pressing escape)
2. Very quickly, press a key (like m, q, etc).
3. Watch the "showcmd" and see it display the m.
4. After 'updatetime' the command will be cancelled (often with a bell sound,
if you have that turned on).
So what is happening with you is that you aren't pressing "a" quickly enough
after the "m", and hence the "m" is being cancelled and the "a" is putting you
into insert mode.
It's massively annoying! To get around it, there are a few things you can try:
a. Remove your au command.
b. Massively decrease the updatetime (I'd like to see you press "m" less than
10 milliseconds after "esc" :)
c. Remember to wait a short time after moving to a location before doing a
command.
d. Complain to Bram and see if he can come up with a fix to it.
My suggested fix would be to block CursorHold and CursorHoldI au commands if
there was a pending user command, but I have no idea if this is even possible.
Hope that helps,
Max
> -----Original Message-----
> From: Yakov Lerner [mailto:[EMAIL PROTECTED]
> Sent: Monday, November 13, 2006 12:39 PM
> To: Vim List
> Subject: <esc>ma misbehaviour
>
> I often use ma to mark the 'a mark. But recently if I press ma
> shortly after Esc, this puts vim into insert mode ! (and does
> not set any 'a mark).
>
> I don't have any mapping for <Esc>ma or ma or <esc>m:
> nmap <esc>m -> No mapping found
> nmap <esc>ma -> No mapping found
> nmap ma -> No mapping found
> nmap m -> No mapping found
> I looked into 'set termcap' for a key defined as ^[ma, nothing.
>
> How can I fix this or track down the reason ?
>
> Thanks
> Yakov