Как выбрать блоки кода с логическим отступом в VIM? Например, рассмотрим этот бит Python:
01:class Foo(object):
02:
03: def __init__(self, bar):
04:
05: if 'baz' in bar:
06: print("I love baz!")
07:
08: print("You made the best choice!")
09:
10: elif 'boo' in bar:
11: print("I like boo!")
12:
13: else:
14: print("I like your choice!")
15:
16: self.choice = bar
17: self.someList = []
18:
19: print("Foo sucessfully created!")
20:
21:
22: def bim(self):
23: print("Bam boo")
24: return True
Как я могу выбрать все строки общего отступа? То есть, если я в строке 06, он выберет строки 06-08 (включительно)? Или, если я в строке 16, он выберет строки 05-19.
Как я могу выбрать все строки с общим отступом и дополнительно строку, которая его «инициализирует»? То есть, если я в строке 06, он выберет строки 05-08 (включительно)? Или, если я в строке 16, он выберет строки 03-19.
Как я могу легко добавить к выделению отступ верхнего уровня? То есть, если бы я выбрал метод __init__
, как бы я тогда перешел к выбору всего класса?
Этот вопрос охватывает общий случай многих других (часто без ответа) вопросов VIM/Python, таких как этот. Первоначально я хотел назначить награду за этот вопрос, но я бы предпочел узнать этот более общий случай, который поможет пользователям в этой ситуации и в других ситуациях.