Более эффективные движения, редактирующие файлы Python в VIM

Дан файл python со следующим повторяется бесконечно:

def myFunction(a, b, c):
    if a:
        print b
    elif c:
        print 'hello'

Я хотел бы передвигаться и редактировать этот файл, используя знакомые движения vim. Например, используя (,), [[,]], {,} или удаляя / дергая / меняя текст с помощью таких команд, как di}.

В других языках (таких как C ++, Java, C # и т. Д.) У вас есть множество фигурных скобок, поэтому с помощью такого движения, как di} можно легко найти соответствующую фигурную скобку и воздействовать на этот блок. И на самом деле, если я нахожусь на символе 'b' в приведенном выше тексте и делаю di) в vim, он успешно удаляет текст между двумя паренами.

Я думаю, проблема в обнаружении блоков кода в python. Использование (,), [[,]], {или} в качестве движений в значительной степени делает одно и то же, приводя вас к началу (выше или на линии def) или к концу (после последней строки функции) функция. И, насколько я знаю, нет никакого способа легко сказать vim «выбрать все для этого блока отступов». В приведенном выше примере я хотел бы быть в 'i' строки if, набрать di} и удалить весь блок if (до конца этой конкретной функции).

Я уверен, что должна быть возможность указать vim работать с отступами для таких движений (ну, может быть, не это конкретное движение, а какое-то определенное пользователем действие). Есть мысли о том, как это сделать?

Ответы на вопрос(4)

Ваш ответ на вопрос