segunda-feira, 6 de abril de 2009

Percorrendo uma lista no vim script

Use:
:let alist = ['one', 'two', 'three']
:for n in alist
: echo n
:endfor
< one ~
two ~
three ~
O loop irá trazer cada elemento, assinalando-o para a variável 'n'.
A forma geral é:
:for {variável} in {expressão-lista}
: {comandos}
:endfor

Para fazer um loop um certo número de vezes crie uma lista de um tamanho
específico. Use a função 'range()' para criar um para você:
:for a in range(3)
: echo a
:endfor
< 0 ~
1 ~
2 ~
Note que o primeiro item da lista que o 'range()' produz é zero, assim o último
item é um menos que o tamanho da lista.

Você pode especificar o valor máximo, o número de passos e mesmo para voltar
para trás:
:for a in range(8, 4, −2)
: echo a
:endfor
< 8 ~
6 ~
4 ~

Um exemplo mais útil é percorrer sobre as linhas em buffer:
:for line in getline(1, 20)
: if line =~ "Date: "
: echo matchstr(line, 'Date: \zs.*')
: endif
:endfor
isto percorre as linhas de 1 a 20, inclusive, e imprime qualquer data que
encontre.

0 comentários:

Postar um comentário