skip to content
petrovich

#1 vim motions: двигаемся по файлу

/ 2 min read

Подготовка рабочего места

Сначала давайте убедимся, что мы на одной волне.

  • У вас установлен плагин vim для VSCode или вы работаете в Neovim или Vim. В других IDE наверняка тоже должны быть vim плагины.
  • Вы заряжены мотивацией двигаться быстро и учить новое.

Анатомия команд

Все комбинации, которые могут быть в vim motions можно привести к одной формуле.


CommandCountMotion


Command — действие, которое нужно сделать

  • d — delete
  • y — copy (yank)
  • c — change
  • v — visual
  • и другие

Count — сколько раз нужно выполнить команду

Motion — в каком направлении выполнять

  • h — влево
  • j — вверх
  • k — вниз
  • l — вправо
  • b — слово назад
  • w — слово вперед
  • и другие

Например

  • d5j (5dj так же работает) удаляет 5 строчек вниз
  • 5k двигает курсор вверх на 5 строчек
  • yw копирует слово

Минимум, который нужен

i и a — перейти в insert mode, разберитесь, в чем между ними разница

esc — выйти в normal mode

yy — скопировать строчку

dd — удалить строчку

x — удалить символ

r — заменить символ

p — вставить скопированное

o и O — вставить строчку и перейти в insert mode, пробуйте для ощущения разницы

u — отменить действие

w и b — прыгать по словам

Программисты просто редактируют текст

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

  • Писать символы: i и a, o и O
  • Удалять символы: x и d
  • Копировать: y и yy
  • Вставлять: p и P
  • Отменять: u и ctrl+r

На что особенно обратить внимание

  • Научитесь различать режимы работы vim (normal, insert, visual)
  • Осознайте анатомию команд перемещения: CommandCountMotion
  • Не останавливайтесь, когда что-то забыли и вам кажется, что вы теряете время. Нейронным связям нужно время, чтобы укрепиться, а вы не заметите, как они укрепятся.
  • Если пока совсем ничего не получается, то попробуйте поиграть в Vim Adventures.

Через пару недель вы забудете о существовании стрелок и мышки.