Более эффективные движения, редактирующие файлы 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 работать с отступами для таких движений (ну, может быть, не это конкретное движение, а какое-то определенное пользователем действие). Есть мысли о том, как это сделать?