fazendo vim fold também esconde nova linha após a função

8

Como se pode fazer a função fold do vim - quando usar foldmethod = syntax - também esconde uma nova linha após cada função, if-else e struct (usando Go).

    
por Łukasz Gruner 17.07.2011 / 19:03

1 resposta

4

Veja como fazer isso para C:

  • Pegue o arquivo de sintaxe original (em Unix, normalmente encontrado em /usr/share/vim ) e copie-o para (novamente, em Unix) ~/.vim/syntax .
  • Altere o padrão "final" na definição da região do cBlock:
syntax region cBlock    start="{" end="}" transparent fold

torna-se

syntax region cBlock    start="{" end="}\(\n\n\)\?" transparent fold

Aqui, o primeiro \n corresponde ao caractere de nova linha imediatamente após a chave de fechamento, o segundo à linha vazia. Isso não funcionará se } for seguido por, e. um comentário: o bloco ainda será dobrado, mas a seguinte nova linha não será.

Eu não tenho um arquivo de sintaxe para o Go aqui (até onde eu sei), mas ele deve funcionar de maneira semelhante.

Nota: a maneira mais flexível seria criar um novo arquivo em ~/.vim/after/syntax e apenas alterar a definição da região, mas não obtive êxito aqui. Apenas copiar a definição da região não funciona.

    
por 10.02.2012 / 11:08

Tags