On 4/15/06, Bram Moolenaar <[EMAIL PROTECTED]> wrote:
>
> Yakov Lerner wrote:
>
> > In the example below, the 'cabbrev <silent>' doesn't work,
> > while identical cabbrev without <silent> works ok (vim70d02)
> > -----------------------------------------------
> > vim -u cab.vim    # where cab.vim is below
> > :GG<space>        # this works, produces expected  :GG *
> > :BB<space>        # doesn't work, does not produce :BB *
> > :BB<space><space> # cursor jumps to column 9, why?
> > :BB<space><space><bs> # finally produces :BB * ...
> >
> > ------------------------------------------------
> > " cab.vim
> > set nocp
> > cabbrev GG          GG *<C-R>=Eatchar('\s')<CR>
> > cabbrev <silent> BB BB *<C-R>=Eatchar('\s')<CR>
> >
> > func! Eatchar(pat) "
> >   let c = nr2char(getchar(0))
> >   return (c =~ a:pat) ? '' : c
> > endfunc
> > --------------------------------------------------
>
> You can see that pressing <BS> shows the text you expected, thus it's a
> redrawing problem.  This actually is documented below ":map-silent":
>
>         Using "<silent>" for an abbreviation is possible, but will cause
>         redrawing of the command line to fail.

Ah, I see. Thanks.

Yakov

Reply via email to