¿Hay alguna manera de usar pliegues u otra magia negra de Vim-script para ocultar bloques de licencia en la parte superior de los archivos? No me gusta que ocupen una sección tan grande de mi panel de edición; Me gusta tener una idea de lo que está haciendo un archivo cuando lo abro por primera vez, en lugar de una carátula completa.¿Puedo hacer que Vim ignore un bloque de licencia en la parte superior de un archivo?
Respuesta
probar este en un AutoCommand.
function! FoldCopyright
if !exists("b:foldedCopyright")
let b:foldedCopyright = 1
1,15fold
endif
endfunction
Ajuste el rango en la línea 4 adecuadamente. En el peor de los casos donde el derecho de autor se inicia en diferentes lugares y es una longitud variable este patrón debe hacer:
1,/Beginning of copyright/;/End of copyright/
Recomiendo usar 'silent!' Delante del comando fold para que si el bloque de licencia no existe, Vim no se queja. – ereOn
¿Qué tal si los borramos? Seriamente.
El código fuente está protegido por derechos de propiedad y licencias, no es el texto estándar. No es necesario que esté allí, al menos en la mayoría de los casos.
En el caso de GPL y otros esquemas similares que realmente requieren que el texto esté presente, se puede mover al final del archivo o lo que sea.
¿Y qué pasa si se quiere que las personas lean la información relevante de la licencia ** primero **? Vim es lo suficientemente potente como para doblarlo de forma automática y fácil, así que no es gran cosa ... – ereOn
Depende de si hay una forma coherente para el bloque de la licencia y en qué idioma está programando. Por ejemplo, python tiende a usar un 'foldexpr' para definir el plegado, por lo que para agregar esto, debe reemplazar la función existente con una nueva (o deshacerse del plegado existente). Creo que el valor predeterminado en C es usar plegado manual (aunque es posible que yo mismo lo haya configurado de esa manera: no recuerdo), por lo que es mucho más fácil agregar plegado adicional.
Con un simple mensaje de copyright de GPL como el que se encuentra al final de esta publicación, puede establecer foldmethod en manual y tener una función simple que crea un pliegue. Todo depende de la forma del copyright y de la importancia de mantener el plegado existente. Me temo que necesitaría un poco más de detalle para dar una respuesta más útil. De todos modos, aquí está un script de ejemplo que podría ser utilizado para doblar el aviso de copyright al final de este 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()
Suponiendo un aviso de copyright como la siguiente:
# 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...
he creado un pequeño plugin para este vim. Adivina cuándo debe doblarse el primer comentario de la página. Funcionó en mis casos de prueba, pero, por supuesto, cualquier mejora es bienvenida. Debería ser fácil agregar otros identificadores de línea individuales o múltiples.
Obten here. Para instalar, como cualquier otro complemento, simplemente colócalo en tu ~/.vim/plugin.
Editar: Se ha cambiado el enlace a vim.org y limpió la respuesta
¿Por qué no enviar este vim.org como un script? –
buena pregunta. no parece muy útil. – fotanus
- 1. ¿Cómo puedo abrir vim con un número de línea particular en la parte superior?
- 2. agregar un texto en la parte superior del archivo
- 3. Hacer FancyBox aparece en la parte superior
- 4. ¿Cómo puedo hacer que Subversion ignore un directorio?
- 5. ¿Cómo puedo guardar un bloque de texto en modo visual en un archivo en Vim?
- 6. ¿Puedo hacer que el elemento WebView "flote" en la parte superior de mi diseño principal?
- 7. ¿Cómo hacer que Hibernate ignore un método?
- 8. ¿Cómo puedo hacer que mi wxpython se muestre en la parte superior de mi escritorio?
- 9. Cambiando el índice z para hacer que un clic aparezca en la parte superior
- 10. ¿Cómo puedo hacer que vim reconozca la codificación del archivo?
- 11. ¿Marcar una región en VIM sin que el cursor se mueva a la parte superior del bloque?
- 12. Cómo "z-index" para hacer que un menú esté siempre en la parte superior del contenido
- 13. ¿Cómo hacer svn ignore en un solo archivo?
- 14. ¿Cómo hacer una vista de superposición personalizada transparente en la parte superior de un SurfaceView?
- 15. ¿Cómo hacer combinación de correspondencia en la parte superior de un PDF?
- 16. cómo poner la línea actual bajo edición en la parte superior de la pantalla en vim
- 17. posicionar un div en la parte superior de una imagen
- 18. ¿Hay un bloque deshacer en VIM?
- 19. un div en la parte superior de otro
- 20. ¿Cómo agregar 20 píxeles de blanco en la parte superior de un archivo de imagen existente?
- 21. Un comando de proceso en la parte superior
- 22. ¿Puedo transportar un archivo en Vim?
- 23. Determine la distancia desde la parte superior de un div a la parte superior de la ventana con javascript
- 24. Cómo dibujar un círculo comenzando en la parte superior
- 25. ¿Cómo puedo hacer que Inno Setup ignore los directorios vacíos?
- 26. ¿Puedo hacer que git diff ignore los cambios de permisos?
- 27. ¿Cómo puedo hacer que Eclipse se desplace más allá de la parte inferior del documento?
- 28. ¿Cómo hacer que un hipervínculo navegue hasta la parte superior de la figura en LaTeX cuando se usa hiperref?
- 29. ¿Cómo hacer que el explorador de archivos de Vim abra un archivo en un nuevo búfer?
- 30. agregar algo a la parte superior de un objeto JSON
Cuál es el formato del texto que desea ignorar? –