¿Cómo se pliegan las funciones automáticamente?


12

¿Hay alguna manera de hacer que Vim pliegue funciones basadas en la sintaxis de una declaración de función?

Por ejemplo, hacer que vim active una función como esta:

def foobar(foo,bar):
  if foo > bar:
    print "foo"
  elif foo < bar:
    print "bar"
  elif foo == bar:
    print "foobar"

Dentro de esto:

+----- 7 lines: def foobar(foo,bar): -------------------------------------------------------------

¿Hay algún conjunto de comandos o una función que pueda poner en mi archivo .vimrc para lograr esto?

Respuestas:


12

Dado que su ejemplo está en Python, que se basa en la sangría correcta de los bloques de código, es suficiente basar el plegado en eso:

:set foldmethod=indent

Para obtener más información sobre las variedades de plegado disponibles, consulte : ayuda método de plegado


7

Por supuesto:

set foldmethod=syntax

Luego puede usar zcpara cerrar un pliegue, zoabrir uno o zaalternar.

Desafortunadamente, Vim no incluye información de plegado para Python por defecto, que parece estar usando. Sin embargo, podría usar uno de los muchos recursos externos .


3
Para que esto funcione, debe utilizar el archivo de sintaxis que está utilizando syn-fold. en mi instalación de vim74, solo alrededor del 10% de los archivos de sintaxis lo usan.
jalanb
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.