After execution of attached script I got [1, 1, 1, 1, 2, 3] in g:positions, 
while expected [1, 2, 3, 1, 2, 3].

Command: vim -u NONE -c 'so test-normalmove.vim'
Tested on vim-7.3 from gentoo repository and on revision 073ff46fe397 from 
mercurial repository.
set nocompatible
let g:positions=[]
function EchoCurrentPosition(text)
    call add(g:positions, col('.'))
    return a:text
endfunction
inoremap <expr> a EchoCurrentPosition("a")
normal aaaa
normal! ggdG
normal Aa
normal Aa
normal Aa

Attachment: signature.asc
Description: This is a digitally signed message part.

Raspunde prin e-mail lui