Mercurial > vim
view src/testdir/test34.in @ 1593:2430fc9a18d1 v7.1.306
updated for version 7.1-306
author | vimboss |
---|---|
date | Wed, 04 Jun 2008 09:00:32 +0000 |
parents | b63792dadc23 |
children | cd6e6876308e |
line wrap: on
line source
Test for user functions. Also test an <expr> mapping calling a function. STARTTEST :so small.vim :function Table(title, ...) : let ret = a:title : let idx = 1 : while idx <= a:0 : exe "let ret = ret . a:" . idx : let idx = idx + 1 : endwhile : return ret :endfunction :function Compute(n1, n2, divname) : if a:n2 == 0 : return "fail" : endif : exe "let g:" . a:divname . " = ". a:n1 / a:n2 : return "ok" :endfunction :func Expr1() : normal! v : return "111" :endfunc :func Expr2() : call search('XX', 'b') : return "222" :endfunc :func ListItem() : let g:counter += 1 : return g:counter . '. ' :endfunc :func ListReset() : let g:counter = 0 : return '' :endfunc :let counter = 0 :inoremap <expr> ( ListItem() :inoremap <expr> [ ListReset() :imap <expr> + Expr1() :imap <expr> * Expr2() :let retval = "nop" /^here C=Table("xxx", 4, "asdf") =Compute(45, 0, "retval") =retval =Compute(45, 5, "retval") =retval XX+-XX ---*--- (one (two [(one again:$-5,$w! test.out :delfunc Table :delfunc Compute :delfunc Expr1 :delfunc Expr2 :delfunc ListItem :delfunc ListReset :unlet retval counter :q! ENDTEST here