Як складати функції автоматично?


12

Чи є спосіб зробити функції Vim fold на основі синтаксису оголошення функції?

Наприклад, маючи vim повернути таку функцію:

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

У це:

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

Чи є якийсь набір команд чи функція, яку я можу застосувати до свого файлу .vimrc для цього?

Відповіді:


12

Зважаючи на те, що ваш приклад знаходиться в Python, який спирається на правильний відступ блоків коду, досить базувати складання на цьому:

:set foldmethod=indent

Більш детальну інформацію про наявні різновиди складання див. У розділі : довідковий метод


7

Звичайно:

set foldmethod=syntax

Потім можна скористатися, zcщоб закрити складку, zoвідкрити її або zaпереключити.

На жаль, Vim не містить стандартну інформацію для Python за замовчуванням, яку, схоже, ви використовуєте. Однак ви можете використовувати один із багатьох зовнішніх ресурсів .


3
Для того, щоб це працювало синтаксичним файлом, який ви використовуєте, слід використовувати syn-fold. у моїй установці vim74 лише 10% файлів синтаксису використовують його.
jalanb
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.