Выделить слово под курсором вручную — это v, встать на первую букву, протянуть выделение до последней. Текстовый объект делает то же самое одной командой: ciw меняет слово целиком независимо от того, на какой букве внутри слова стоит курсор. Разница именно в этом — не нужно точно позиционироваться на границе объекта, Vim сам находит её.

Два главных модификатора — i (inner, «внутри») и a (around, «вокруг»). di( удаляет содержимое круглых скобок, сами скобки остаются на месте; da( удаляет скобки вместе с содержимым и заодно схлопывает лишний пробел снаружи. Та же логика работает для {}, [], кавычек: vi{ выделяет тело фигурных скобок без них самих, da" убирает кавычки вместе со строкой внутри них.

Курсор при этом может стоять где угодно внутри объекта, не обязательно на самой открывающей скобке или кавычке — Vim сам находит ближайшую пару, в которую попадает текущая позиция. Это и есть выигрыш в скорости: вместо f(, прыжка по % или ручного визуального выделения — одна команда из трёх символов, не требующая точного прицеливания курсором.

#vim #linux