Вы могли слышать программистские анекдоты типа «Не могу выйти из Vim». На «Амазоне» продаётся электронная книга о выходе из текстового редактора Vim. Одни программисты искренне не понимают, как можно работать в такой страшной среде. А для других это любимый текстовый редактор — настолько любимый, что они тащат его команды и плагины в другие текстовые редакторы, например, в VSCode.
Сейчас попробуем разложить по полочкам, что это за зверь и почему вокруг него такой культ.
Что такое Vim
Vim — это специализированный текстовый редактор для программистов. Он предназначен для работы с большими объёмами кода без использования мыши.
Главная особенность Vim — два режима: режим написания текста и режим команд. В первом режиме вы как обычно пишете код, а во втором молниеносно управляете им. Режимы работают параллельно друг другу и меняются по нажатию клавиш.
Главная сила — в огромном количестве клавиатурных команд, которые помогают быстро редактировать текст. Например:
dd — удалить строку, на которой вы сейчас стоите;
10dd — удалить сколько-то строк, в этом случае 10;
cw — заменить слово на другое;
w, b — курсор вперёд или назад на одно слово;
A — дописать текст в конец строки;
I — Начать вписывать текст в начало строки;
U — вернуть изменения в строке (например, если случайно стёр);
: 10,25 w temp — сохранить кусок документа в файл temp. Конкретно здесь сохранится кусок с 10-й по 25-ю строку.
И таких команд несколько десятков. Всё построено вокруг того, чтобы делать все текстовые дела молниеносно и принципиально без участия мыши.
🤔 Зачем редактировать текст без мыши?
У мыши один курсор, которым нужно целиться в мелкие объекты на экране. А пальцев на руках десять, и ими никуда целиться не надо (при должной сноровке). Если у вас выработана мышечная память и вы знаете горячие клавиши (или команды Vim), вы будете редактировать текст быстрее, чем при использовании мыши.
Посмотрите, как удаляет строку среднестатистический пользователь:
- Он отрывает одну руку от клавиатуры.
- Берётся за мышку.
- Выделяет мышкой ненужную строку.
- Нажимает свободной рукой клавишу удаления.
- Возвращает обе руки в исходное положение на клавиатуру.
А так это же действие выполнит пользователь Vim:
- Он жмёт «esc», чтобы перейти в режим команд.
- C помощью навигационных клавиш j и k находит нужную строку.
- Пишет команду dd — удаление строки.
- Жмёт i, чтобы вернуться к редактированию текста.
Пользователь Vim убирает руки с клавиатуры, только чтобы поесть или почесать репу. Всё остальное время он короткими командами обрабатывает текст в несколько раз быстрее, чем любой человек с мышью.
После привыкания работа в Vim сравнима с игрой на гитаре: вы управляете текстом, будто он продолжение вашей руки. Фильмы про хакеров видели? Вот такой эффект.
Кому подходит
Vim считается нестандартным инструментом со множеством недостатков:
- его сложно и долго изучать, поскольку без использования основных команд сам по себе редактор не даёт прироста в скорости;
- у него нет коробочной версии, чтобы можно было установить и сразу решать большинство программистских задач;
- все доступные плагины работают хуже тех, что предлагает любая современная среда разработки.
Vim однозначно не подходит руководителям и тем разработчикам, которые большую часть времени занимаются организационными задачами и мало кодят — не получится быстро редактировать код, если постоянно не тренироваться.
Ещё Vim не подходит новичкам, которые только записались на курсы и ничего не знают о выбранной технологии — нужны хотя бы базовые навыки программирования, чтобы не допускать грубых ошибок при написании кода. Vim тебя не корректирует.
Если вас не испугали перечисленные недостатки и ваша работа связана с постоянным кодингом, то Vim может стать вашим незаменимым помощником.
Как установить
Перейдите на сайт vim.org и поставьте подходящую версию Vim на компьютер. Десктопный редактор — это полигон для тренировок. Здесь вы можете запустить тестовый проект или начать писать текстовые заметки. Основная задача: привыкнуть к новому сочетанию клавиш, научиться быстро переключаться между режимами и перестать пользоваться мышкой с трекпадом.
После установки перейдите в раздел «Справка» и выберите вкладу «Учебник Vim» — это интерактивная обучающая программа и минимум, необходимый для работы с редактором. Учебник состоит из семи уроков, по ходу которых вы познакомитесь с основными командами и сможете медленно обрабатывать код. Чтобы постоянно не возвращаться к учебнику — рекомендуем установить на рабочий стол фирменные обои или распечатать шпаргалку с командами Vim. Когда выучите команды и сможете ими пользоваться без шпаргалок — переходите на следующий этап и попробуйте использовать Vim на реальном проекте.
Добавление Vim в VS Code
Vim поддерживает множество плагинов, которые после установки позволяют превратить старый редактор в аналог современной среды разработки. На наш взгляд, для новичка это не слишком удобно и лучше наоборот — установить Vim в современную среду разработки вроде VS Code.
Откройте VS Code, в боковой панели нажмите на вкладку «Расширения» и вбейте в поиск «Vim» — вам нужно установить плагин vscodevim.vim. Теперь откройте любой файл и попробуйте что-то напечатать — в VS Code должны работать все команды Vim: вы можете в скоростном режиме создавать и редактировать код. Если что-то не работает — перезагрузите программу и попробуйте ещё раз.
Как стать продвинутым вимером
1. Изучите русскоязычную документацию и попробуйте команды, которые могут пригодиться в работе. Если что-то не понимаете или считаете какие-то команды лишними — не тратьте на них время. Vim необъятен, и большинство его возможностей вам не понадобятся — они нужны для специфичных задач.
2. Прочтите список рекомендованной литературы. Во время чтения помните, что лучше всего материал усваивается в том случае, если подкрепить его практикой.
3. Выберите плагины для индивидуальной настройки редактора. Это для тех, кому десктопная версия Vim понравилась больше плагина в VS Code.
4. Присмотритесь к эргономичным клавиатурам с настраиваемым расположением клавиш. Возможно, какая-то из них поможет быстрее освоить возможности Vim.