STARTTEST :e test.out :%d :" function name not starting with a capital :try : func! g:test() : echo "test" : endfunc :catch : $put =v:exception :endtry :" function name folowed by # :try : func! test2() "# : echo "test2" : endfunc :catch : $put =v:exception :endtry :" function name includes a colon :try : func! b:test() : echo "test" : endfunc :catch : $put =v:exception :endtry :" function name starting with/without "g:", buffer-local funcref. :function! g:Foo(n) : $put ='called Foo(' . a:n . ')' :endfunction :let b:my_func = function('Foo') :call b:my_func(1) :echo g:Foo(2) :echo Foo(3) :" script-local function used in Funcref must exist. :so test_eval_func.vim :" using $ instead of '$' must give an error :try : call append($, 'foobar') :catch : $put =v:exception :endtry :1d :w :qa! ENDTEST