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
,for
ywhile
bloques, 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_ifold
complemento .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
class
ydef
, 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/syntax
carpeta un archivo llamadopython.vim
solo con las líneas importantes (tomadas del script anterior):Entonces simplemente active el plegado con
:set foldmethod=syntax
.fuente
class
ydef
s 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^def
y^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,
zM
enmascarar todozR
para expandirlo todo. También agregué:Así puedes
z1
yz2
desangrar poco a poco.fuente
Realmente me gusta este pequeño script vim que escribí para .vimrc. Se asigna
alt+1
para doblar el primer nivel de sangría de Python (definiciones de clase y funciones),alt+2
para doblar el segundo nivel (métodos de clase) yalt+0
para desplegar todo. Se asegura de que solo se pliegue un nivel y no pliegue ninguno de los subniveles anidados. Todavía puede usarza
para alternar el plegado para el bloque actual. Tenga en cuenta que en^[0
,^[
esalt
para mi terminal. No tengo mucha experiencia en el script vim, así que no dude en hacer sugerencias sobre la función :)fuente