У меня еще не было особого повода использовать его, но 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
: текущий уровень отступа плюс одна строка выше и одна строка ниже
полезно для языков, в которых используются операторы «end»: if
/ endif
).
iI
: текущий уровень отступа (фактически, ii
и iI
одинаковы)
Объекты также можно использовать с другими командами, которые ожидают текстовые объекты (т. Е. cii
для удаления текущего уровня отступа и начала вставки его замены).