Pergunta

Existe uma maneira de usar dobras ou algum outro Vim-Script Black Magic para ocultar blocos de licença na parte superior dos arquivos? Eu não gosto que eles ocupem uma seção tão grande do meu painel de edição; Gosto de ter uma sensação para o que um arquivo está fazendo quando o abro pela primeira vez, em vez de um rosto cheio de boilerplate.

Foi útil?

Solução

Experimente isso em um autocomando.

function! FoldCopyright
  if !exists( "b:foldedCopyright" )
    let b:foldedCopyright = 1
    1,15fold
  endif
endfunction

Ajuste o intervalo na linha 4 adequadamente. Na pior das hipóteses, os direitos autorais começam em lugares diferentes e é um comprimento variável, esse padrão deve fazer:

1,/Beginning of copyright/;/End of copyright/

Outras dicas

Depende se há uma forma consistente para o bloco de licença e em qual idioma você está programando. Por exemplo, o python tende a usar um 'dobxpr' para definir a dobra, para adicionar isso para substituir a função existente por um novo (ou se livre do dobramento existente). Acredito que o padrão em C é usar o dobramento manual (embora seja possível que eu o tenha configurado dessa maneira: não me lembro), então isso é muito mais fácil adicionar dobragem extra.

Com uma mensagem de direitos autorais da GPL simples como a no final deste post, você pode definir o FoldMethod como manual e ter uma função simples que cria uma dobra. Tudo depende da forma dos direitos autorais e de quão importante é para você manter o dobramento existente. Receio que eu precise de um pouco mais de detalhes para dar uma resposta mais útil. De qualquer forma, aqui está um exemplo de script que pode ser usado para dobrar o aviso de direitos autorais no final deste post:

function! CreateCopyrightFold()
    let InCopyright = 0
    set foldmethod=manual
    for Line in range(1,line('$'))
        let LineContents = getline(Line)
        if LineContents !~ "^#"
            if InCopyright
                let CopyrightEnd = Line - 1
                exe CopyrightStart . ',' . CopyrightEnd . 'fold'
            endif
            break
        elseif LineContents =~ "Copyright"
            let InCopyright = 1
            let CopyrightStart = Line
        endif
    endfor
endfunction
au BufRead *.py call CreateCopyrightFold()

Assumindo um aviso de direitos autorais como este:

# Copyright (C) 2009 Some Company or Something
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

import sys
# Code continues...

Eu criei um pequeno plug -in Vim para isso. Ele se divina quando o primeiro comentário da página deve ser dobrado. Funcionou nos meus casos de teste, mas, é claro, qualquer melhoria é bem -vinda. Deve ser fácil adicionar outros identificadores de linha únicos ou múltiplos.

Pegue aqui. Para instalar, como qualquer outro plug -in, basta soltá -lo no seu ~/.vim/plug -in.

Editar: mudou o link para vim.org e limpe a resposta

Que tal excluí -los? Seriamente.

O código -fonte é protegido pela propriedade e licenciamento de direitos, não pela caldeira. Não precisa estar lá - pelo menos na maioria dos casos.

No caso da GPL e outros esquemas semelhantes que exigem efetivamente o texto, ele pode ser movido para a parte inferior do arquivo ou qualquer outra coisa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top