Come piegare le funzioni automaticamente?


12

C'è un modo per rendere le funzioni di piegatura di Vim basate sulla sintassi di una dichiarazione di funzione?

Ad esempio, facendo in modo che vim attivi una funzione come questa:

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

In questo:

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

Esiste un set di comandi o una funzione che posso inserire nel mio file .vimrc per farlo?

Risposte:


12

Dato che il tuo esempio è in Python, che si basa sulla corretta indentazione dei blocchi di codice, è sufficiente basare la piegatura su questo:

:set foldmethod=indent

Per ulteriori informazioni sulle varietà di pieghe disponibili, consultare : help foldmethod


7

Sicuro:

set foldmethod=syntax

È quindi possibile utilizzare zcper chiudere una piega, zoper aprirne una o zaper attivare / disattivare.

Sfortunatamente, Vim non include le informazioni di piegatura per Python per impostazione predefinita, che sembra essere in uso. Tuttavia, è possibile utilizzare una delle tante risorse esterne .


3
Affinché ciò funzioni, è necessario utilizzare il file di sintassi che si sta utilizzando syn-fold. nella mia installazione di vim74, solo circa il 10% dei file di sintassi lo usa.
jalanb,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.