quinta-feira, 7 de maio de 2009

Opção para definir quais teclas podem passar o início ou fim de linha

Use:
:set whichwrap={string}
Define que teclas move o cursor para esquerda/direita em direção à linha
anterior/seguinte.

Repetindo o comandos de salto para caractere

Para repetir esses comandos (f,F,t,T), use:
;
Para repetir na direção oposta use:
,
Pode-se usar contagem de comando:
3;
3,

Opção para definir que caracteres podem ser exibidos literalmente na tela

Use:
:set isprint={especificação}
Cuidado com a especificação, pois pode bagunçar a tela.

Usa a mesma {especificação} de 'iskeyword'.

terça-feira, 5 de maio de 2009

Expressão regular: Definindo o fim da ocorrência (match)

O item '\ze' em uma expressão regular define o local aonde termina uma ocorrência. O texto seguinte é só testado para validar o regex mas não é retornado.

Esse comando é útil quando você quer um texto que deve ser seguido por outro, mas não deseja que ele faça parte da ocorrência.

Exemplo:
end\ze\(if\|for\)
'end', define o fim da ocorrência, seguido de 'if' ou 'for'. Retorna 'end' quando ocorrer 'endif' e 'endfor'.

Pode ser usado múltiplas vezes, o último '\ze' é o que é usado.

Expressão regular: Definindo o início da ocorrência (match)

O item '\zs' em uma expressão regular define o local aonde começa uma ocorrência. O texto anterior é só testado para validar o regex mas não é retornado.

Esse comando é útil quando você quer um texto que deve ser precedido por outro, mas não deseja que ele faça parte da ocorrência.

Exemplo:
/^\s*\zsif
localiza o início da linha, seguido de zero ou mais espaços, define o início da
ocorrência, seguido de 'if'. A expressão localiza 'if's no início da linha
ignorando os espaços precedentes.
Pode ser usado múltiplas vezes, o último '\zs' é o que é usado:
/\(.\{-}\zsFab\)\{3}
Localiza a terceira ocorrência de 'Fab'.