Estoy interesado en habilitar el plegado de código en Vim para el código Python. He notado varias formas de hacerlo.
¿Alguien tiene una forma preferida de plegar código Python en Vim? Es decir,
- ¿Tiene un complemento de Vim en particular que usa y le gusta?
- ¿Utiliza el plegado manual o coloca marcadores en los comentarios?
- ¿Alguna otra forma recomendada de plegar código para Python en Vim?

set foldnestmax=2, de esta manera los métodos de las clases se pliegan, pero las declaraciones internas no.Utilizo este archivo de sintaxis para Python. Establece el método de plegado en sintaxis y plega todas las clases y funciones, pero nada más.
fuente
Otro complemento más para plegar código Python. Bastante simple, maneja cadenas de documentos y en GitHub:
SimpylFold
¡Disfrutar!
fuente
if,forywhilebloques, que no sé?Python es muy adecuado para doblar la sangría, pero para escribir mi propio código, uso marcadores, ya que pueden procesar un documento de la forma que desee y pueden servir como una especie de tabla de contenido. Tengo esto en mi vimrc para alternar entre los dos cuando veo el código de otra persona.
fuente
Creo que el plegado de sangría está bien para Python. Estoy haciendo un repositorio de git de múltiples ramas para ideas de IDE vim-config python / django. ¡Horquilla lejos!
http://github.com/skyl/vim-config-python-ide
fuente
Realmente me gusta el
python_ifoldcomplemento .fuente
Prueba este complemento:
http://vim.sourceforge.net/scripts/script.php?script_id=515
fuente
Para mí, el plegado ideal es doblar solo los bloques
classydef, el doblado con sangría es demasiado para mi gusto. Creo que una solución elegante es utilizar el sistema de sintaxis como esta uno mencionado por Tomas. Sin embargo, este está destinado a reemplazar el archivo de sintaxis original y puede terminar siendo más antiguo que el original (es decir, ese script no menciona la sintaxis de Python 3).Mi solución es colocar en la
~/.vim/syntaxcarpeta un archivo llamadopython.vimsolo con las líneas importantes (tomadas del script anterior):Entonces simplemente active el plegado con
:set foldmethod=syntax.fuente
classydefs si están al principio de una línea. Como apenas puedo leer la expresión, tengo problemas al intentar modificarla para que coincida con^defy^class. Sin embargo, esto es curioso ya que\s*debería lidiar bien con esto ..La fuente de Python viene con un complemento de sintaxis vim junto con un archivo vimrc personalizado. Consulte las preguntas frecuentes de Python en vim
fuente
En tu
.vimrc:Luego,
zMenmascarar todozRpara expandirlo todo. También agregué:Así puedes
z1yz2desangrar poco a poco.fuente
Realmente me gusta este pequeño script vim que escribí para .vimrc. Se asigna
alt+1para doblar el primer nivel de sangría de Python (definiciones de clase y funciones),alt+2para doblar el segundo nivel (métodos de clase) yalt+0para desplegar todo. Se asegura de que solo se pliegue un nivel y no pliegue ninguno de los subniveles anidados. Todavía puede usarzapara alternar el plegado para el bloque actual. Tenga en cuenta que en^[0,^[esaltpara mi terminal. No tengo mucha experiencia en el script vim, así que no dude en hacer sugerencias sobre la función :)fuente