domingo, 22 de março de 2009

Opção para definir o que é um comentário

O vim sabe distinguir o comentário em uma linha.
O comentário é composto de 3 partes: tem um início, meio e fim.

Muitos comentários de uma linha começam com um caractere específico. Em C++ '//', nos Makefiles '#', nos scripts vim '"'.

Use a opção:
:set comments=flags
O formato geral da opção é :
{flags}:{texto}
aonde ':' é um separador de flags. Os flags podem ser omitidos.

Por exemplo, para o vim identificar um comentário C++:
:set comments=://
Esses itens podem ser concatenados com ',' permitindo reconhecer diferentes tipos de comentários ao mesmo tempo.

Por exemplo, um citação de um e-mail anterior é precedida por '>' e '!'.
Este comando iria identifica-lo:
:set comments=n:>,n:!
Existem 2 itens. Um para comentários começando com '>' e outro começando com '!'.
Ambos usam flags 'n'.
Isto significa que os comentários aninham. Assim um comentário começando com '>' pode ter outro comentário apos '>':

> ! Did you see that site? ~
> ! It looks really great. ~
> I don't like it. The ~
> colors are terrible. ~
What is the URL of that ~
site? ~
Com um 'textwidth' diferente (80 por exemplo) e formatando com 'gq' resulta em :

> ! Did you see that site? It looks really great. ~
> I don't like it. The colors are terrible. ~
What is the URL of that site? ~
O vim não mistura um tipo de comentário com outro (> com !).

Um comentário C é um exemplo de comentário de 3 partes: começa com '/*', tem no meio '*' e '*/' no final.
A opção fica:
:set comments=s1:/*,mb:*,ex:*/
O início é definido com 's1:/*'.
's' indica o início de comentário de 3 partes.
o flag '1' indica que a parte do meio tem um deslocamente de 1 espaço
'/*' é o texto que se reconhece o início do comentário.

A parte do meio é 'mb:*'.
'm' indica que é a parte do meio.
o flag 'b' indica que um branco deve seguir o texto. Caso contrário o vim iria considerar texto como '*pointer' como meio de comentário.
'*' é o texto do meio do comentário.

A parte final é 'ex:*/'.
'e' indica que é a parte final.
o flag 'x' significa que depois que o vim inseriu um asterisco automaticamente, ao digitar '/' removerá o espaço extra.

Para mais detalhes:
:h format-comments

0 comentários:

Postar um comentário