Ответ 1
У меня не было большого количества возможностей использовать его еще, но Michael Smiths vim-indent-object звучит так, будто он может быть близок к что вы хотите.
Пример использования (номера строк, показанные с помощью set number
active):
1 This is
2 some text
3 with multiple
4 levels of
5 indentation.
6 There is also
7 another stanza.
С помощью курсора на строке 2, 4 или 5 введите Vii
, чтобы выбрать строки с 2 по 5.
С помощью курсора в строке 3 введите Vai
, чтобы выбрать строки с 2 по 3.
С помощью курсора в строке 3 введите Vaiii
(или Viiii
), чтобы выбрать строки с 2 по 5 (в визуальном режиме несколько применений объектов отступа расширяют выделение до следующего уровня вверх/вниз).
Текстовыми объектами, которые он определяет, являются:
-
ai
: текущий уровень отступов плюс строка выше
полезно, когда вы хотите захватить вводную строку (например, захватитеif
и его "затем" блок) -
ii
: текущий уровень отступов -
ai
: текущий уровень отступов плюс одна строка выше и одна строка ниже
полезно для языков, использующих "конечные" операторы:if
/endif
). -
ii
: текущий уровень отступа (фактически,ii
иii
совпадают)
Объекты также могут использоваться с другими командами, которые ожидают, что текстовые объекты (т.е. cii
удаляют текущий уровень отступа и начинают вставлять его замену).