domingo, 5 de abril de 2009

Chamando uma função com um intervalo de linhas

O comando ':call' pode receber um intervalo de linhas.

Quando a função foi definida com a palavra-chave <range>, ela tratará o
intervalo de linhas ela mesma:
:function Count_words() range
: let lnum = a:firstline
: let n = 0
: while lnum <= a:lastline
: let n = n + len(split(getline(lnum)))
: let lnum = lnum + 1
: endwhile
: echo "found " . n . " words"
:endfunction
Agora você pode chamar esta função com:
:10,30call Count_words()
a função será chamada uma vez e ecoará o número de palavras.

Outra forma é definir a função sem <range>. A função será chamada a cada linha
do intervalo, com o cursor naquela linha:
:function Number()
: echo "line " . line(".") . " contains: " . getline(".")
:endfunction
Se você chamar a função com:
:10,15call Number()
a função será chamada seis vezes.

0 comentários:

Postar um comentário