sexta-feira, 3 de abril de 2009

Definindo uma função do usuário no vim

Para definir use:
:function {nome}({var1}, {var2}, ...)
: {corpo}
:endfunction

O nome da função deve começar com uma letra maiúscula.

Uma função que retorna o menor de dois números:
:function Min(num1, num2)
: if a:num1 < a:num2
:    let smaller = a:num1
: else
:    let smaller = a:num2
: endif
: return smaller
:endfunction
':function Min(num1, num2)' define que uma função chamada 'Min' que leva dois argumentos. ': if a:num1 < a:num2' testa qual número é menor. O prefixo 'a:' diz que a variável é um argumento de função. ': let smaller = a:num1' assinala para a variável 'smaller' o menor número. Variáveis dentro de uma função são locais, a não ser que sejam prefixadas com 'g:', 'a:' ou 's:'. ': return smaller' retorna o menor número para o usuário. Um versão reduzida da função:
:function Min(num1, num2)
: if a:num1 < a:num2
:    return a:num1
: endif
: return a:num2
:endfunction
Uma função do usuário é chamada do mesmo jeito que uma função predefinida:
:echo Min(5, 8)

Somente quando a função é usada é que os erros, se tiverem, aparecerão.

Quando uma função atinge ':endfunction' ou o ':return' não tem argumento, ela
retorna zero.

Para redefinir uma função que já existe use '!':
:function! Min(num1, num2, num3)

0 comentários:

Postar um comentário