Jak automatycznie składasz funkcje?


12

Czy istnieje sposób, aby funkcje składania Vima były oparte na składni deklaracji funkcji?

Na przykład posiadanie vima włącza taką funkcję:

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

Zaangażowany w to:

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

Czy istnieje jakiś zestaw poleceń lub funkcja, którą można umieścić w pliku .vimrc, aby to osiągnąć?

Odpowiedzi:


12

Biorąc pod uwagę, że twój przykład znajduje się w Pythonie, który opiera się na poprawnym wcięciu bloków kodu, wystarczy oprzeć składanie na tym:

:set foldmethod=indent

Aby uzyskać więcej informacji o dostępnych odmianach składania, patrz : help foldmethod


7

Pewnie:

set foldmethod=syntax

Następnie możesz użyć zcdo zamknięcia klapki, zootwarcia jednej lub zaprzełączenia.

Niestety, Vim nie zawiera domyślnie informacji o zwijaniu dla Pythona, których prawdopodobnie używasz. Możesz jednak użyć jednego z wielu zewnętrznych zasobów .


3
Aby to zadziałało, należy skorzystać z używanego pliku składni syn-fold. w mojej instalacji vim74 używa go tylko około 10% plików składniowych.
jalanb
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.