← blog

Vim — это язык, а не список горячих клавиш

2026-07-173 min readIntermediate
#основы#движения#операторы

Как обычно пытаются выучить Vim: находят список из 50 команд, заучивают десяток, забывают девять и делают вывод, что Vim — для людей с хорошей памятью.

Подход провальный, потому что у него неверная форма. Vim — не куча сочетаний для зубрёжки. Это маленький язык с грамматикой, а как работает грамматика, вы уже знаете: прямо сейчас читаете.

Глаголы и существительные

Фраза по-русски: удалить слово. Фраза на Vim: dw.

d — глагол, delete. w — существительное, word. Вместе получается инструкция. Не заученное сочетание, а составленная вами фраза.

Теперь поменяйте части. c — change (удалить и начать печатать). y — yank (скопировать). Оставьте w — получите cw и yw. Вы не выучили две новые команды. Вы выучили один глагол и переиспользовали уже известное существительное.

Меняем с другой стороны. $ — «до конца строки». Значит d$ удаляет до конца строки, c$ меняет до конца строки, y$ копирует до конца строки.

Три глагола, два существительных, шесть фраз. И никто не запоминал шесть вещей.

Умножение

Вот здесь это перестаёт быть милым и становится причиной, по которой из Vim не уходят.

В Vim примерно десяток ходовых глаголов и несколько десятков существительных: w слово, $ конец строки, } абзац, G конец файла, f, до ближайшей запятой, i( внутри скобок. Вы учите не комбинации «глагол × существительное». Вы учите глаголы, учите существительные — и любая пара работает, потому что это гарантирует грамматика.

Выучили i( — «внутри скобок» — и в тот же вечер бесплатно получили di(, ci(, yi(. Выучили глагол y — и он сразу работает с каждым существительным, которое у вас уже есть.

Шпаргалка перечисляет комбинации так, будто это отдельные факты. Поэтому она такая длинная и поэтому не запоминается.

Счётчики — это прилагательные

Поставьте число впереди, и оно значит ровно то, что вы подумали. 3w — три слова вперёд. d3w — удалить три слова. 5j — пять строк вниз.

Учить нечего. Что значит «три», вы знали до того, как открыли терминал.

Где живёт магия

Знаменитый момент с Vim — тот самый, про который говорят «редактор читает мысли» — это ciw.

Разбираем: c change, i inner, w word. «Изменить внутреннее слово». Курсор может стоять где угодно внутри слова. Не в начале. Где угодно. Vim сам найдёт границы, удалит содержимое и оставит вас в режиме вставки — печатайте.

Сравните с тем, как вы делаете сейчас: двойной клик по слову или клик перед ним, Shift, клик после — и печатать. Это поход к мыши, и руки ушли с клавиатуры. ciw — три клавиши, и руки не двинулись.

А потом есть . — повторить последнее изменение. Сделали ciw, напечатали новое слово, нажали Escape. Прыгнули к следующему вхождению и нажали .. Vim повторит всю правку. Три нажатия, дальше по одному за повтор — сколько угодно раз.

Это не горячая клавиша. Это фраза, которую можно сказать ещё раз.

Почему это важнее скорости

Vim продают через скорость — самое неинтересное, что в нём есть. Ни у кого узкое место не в наборе текста.

Настоящее утверждение другое: когда редактирование становится языком, на котором вы свободно говорите, расстояние между «хочу убрать это слово» и исчезнувшим словом сжимается в ноль. Вы перестаёте планировать правки. Вы вообще перестаёте думать о редакторе. Мысль и действие приходят одновременно.

Поэтому и метрика тут не секунды, а нажатия — насколько прямо вы сказали то, что имели в виду. Меньше клавиш — лучше фраза.

Учите грамматику, а не словарь

Если забрать отсюда одно: перестаньте коллекционировать команды. Выучите как следует один глагол, выучите одно существительное — и заметьте, что они соединяются. Потом добавьте существительное. Комбинации придут сами: для этого грамматика и нужна.

Глава «Операторы» учит ровно этому, по одному глаголу за раз, прямо в браузере. Минут десять до момента, когда умножение щёлкает.