Vim: текстовый редактор для мастеров

Vim: текстовый редактор для мастеров

Очень сложная штука, но мы попытаемся объяснить просто.

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

Сейчас попробуем разложить по полочкам, что это за зверь и почему вокруг него такой культ.

Что такое Vim

Vim — это специализированный текстовый редактор для программистов. Он предназначен для работы с большими объёмами кода без использования мыши.

Главная особенность Vim — два режима: режим написания текста и режим команд. В первом режиме вы как обычно пишете код, а во втором молниеносно управляете им. Режимы работают параллельно друг другу и меняются по нажатию клавиш. 

Главная сила — в огромном количестве клавиатурных команд, которые помогают быстро редактировать текст. Например: 

dd — удалить строку, на которой вы сейчас стоите;

10dd — удалить сколько-то строк, в этом случае 10;

cw — заменить слово на другое;

w, b — курсор вперёд или назад на одно слово;

A — дописать текст в конец строки;

I — Начать вписывать текст в начало строки;

U — вернуть изменения в строке (например, если случайно стёр);

: 10,25 w temp — сохранить кусок документа в файл temp. Конкретно здесь сохранится кусок с 10-й по 25-ю строку.

И таких команд несколько десятков. Всё построено вокруг того, чтобы делать все текстовые дела молниеносно и принципиально без участия мыши.

Команды Vim, разложенные на клавиатуре
Команды Vim, разложенные на клавиатуре

🤔 Зачем редактировать текст без мыши?

У мыши один курсор, которым нужно целиться в мелкие объекты на экране. А пальцев на руках десять, и ими никуда целиться не надо (при должной сноровке). Если у вас выработана мышечная память и вы знаете горячие клавиши (или команды Vim), вы будете редактировать текст быстрее, чем при использовании мыши.  

Посмотрите, как удаляет строку среднестатистический пользователь:

  1. Он отрывает одну руку от клавиатуры. 
  2. Берётся за мышку. 
  3. Выделяет мышкой ненужную строку. 
  4. Нажимает свободной рукой клавишу удаления. 
  5. Возвращает обе руки в исходное положение на клавиатуру. 

А так это же действие выполнит пользователь Vim: 

  1. Он жмёт «esc», чтобы перейти в режим команд.
  2. C помощью навигационных клавиш j и k находит нужную строку.
  3. Пишет команду dd — удаление строки.
  4. Жмёт i, чтобы вернуться к редактированию текста.

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

После привыкания работа в Vim сравнима с игрой на гитаре: вы управляете текстом, будто он продолжение вашей руки. Фильмы про хакеров видели? Вот такой эффект. 

Кому подходит

Vim считается нестандартным инструментом со множеством недостатков: 

  • его сложно и долго изучать, поскольку без использования основных команд сам по себе редактор не даёт прироста в скорости;
  • у него нет коробочной версии, чтобы можно было установить и сразу решать большинство программистских задач;
  • все доступные плагины работают хуже тех, что предлагает любая современная среда разработки. 

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

Ещё Vim не подходит новичкам, которые только записались на курсы и ничего не знают о выбранной технологии — нужны хотя бы базовые навыки программирования, чтобы не допускать грубых ошибок при написании кода. Vim тебя не корректирует. 

Если вас не испугали перечисленные недостатки и ваша работа связана с постоянным кодингом, то Vim может стать вашим незаменимым помощником.

Комментарий типичного вимера
Комментарий типичного вимера. Если узнали себя — однозначно стоит попробовать. Источник

Как установить

Перейдите на сайт vim.org и поставьте подходящую версию Vim на компьютер. Десктопный редактор — это полигон для тренировок. Здесь вы можете запустить тестовый проект или начать писать текстовые заметки. Основная задача: привыкнуть к новому сочетанию клавиш, научиться быстро переключаться между режимами и перестать пользоваться мышкой с трекпадом. 

После установки перейдите в раздел «Справка» и выберите вкладу «Учебник Vim» — это интерактивная обучающая программа и минимум, необходимый для работы с редактором. Учебник состоит из семи уроков, по ходу которых вы познакомитесь с основными командами и сможете медленно обрабатывать код. Чтобы постоянно не возвращаться к учебнику — рекомендуем установить на рабочий стол фирменные обои или распечатать шпаргалку с командами Vim. Когда выучите команды и сможете ими пользоваться без шпаргалок — переходите на следующий этап и попробуйте использовать Vim на реальном проекте.

Стартовая страница учебника Vim
Стартовая страница учебника Vim. Учебник можно вызвать через «Справку» или команду vimtutor. Во время тестов мы скачали несколько версий редактора, и команда vimtutor срабатывала не всегда. Поэтому рекомендуем пользоваться «Справкой» — она надёжней

Добавление Vim в VS Code

Vim поддерживает множество плагинов, которые после установки позволяют превратить старый редактор в аналог современной среды разработки. На наш взгляд, для новичка это не слишком удобно и лучше наоборот — установить Vim в современную среду разработки вроде VS Code. 

Откройте VS Code, в боковой панели нажмите на вкладку «Расширения» и вбейте в поиск «Vim» — вам нужно установить плагин vscodevim.vim. Теперь откройте любой файл и попробуйте что-то напечатать — в VS Code должны работать все команды Vim: вы можете в скоростном режиме создавать и редактировать код. Если что-то не работает — перезагрузите программу и попробуйте ещё раз.

Расширение vscodevim.vim для VS Code
Расширение vscodevim.vim для VS Code

Как стать продвинутым вимером 

1. Изучите русскоязычную документацию и попробуйте команды, которые могут пригодиться в работе. Если что-то не понимаете или считаете какие-то команды лишними — не тратьте на них время. Vim необъятен, и большинство его возможностей вам не понадобятся — они нужны для специфичных задач. 

2. Прочтите список рекомендованной литературы. Во время чтения помните, что лучше всего материал усваивается в том случае, если подкрепить его практикой. 

3. Выберите плагины для индивидуальной настройки редактора. Это для тех, кому десктопная версия Vim понравилась больше плагина в VS Code. 

4. Присмотритесь к эргономичным клавиатурам с настраиваемым расположением клавиш. Возможно, какая-то из них поможет быстрее освоить возможности Vim. 

Текст:

Саша Бабаскин

Редактор:

Максим Ильяхов

Корректор:

Ира Михеева

Иллюстратор:

Даня Берковский

Вёрстка:

Маша Дронова

Соцсети:

Олег Вешкурцев

Как выйти из Vim:

:х или :q! и Enter

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства и компенсация, если вы пойдёте работать в «Яндекс».
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
Асимметричное шифрование
Асимметричное шифрование

Сложное, но очень полезное.

Как отправить JSON-данные на сервер
Как отправить JSON-данные на сервер

Первый шаг на пути к облачному хранению данных.

За что все любят Python

И стоит ли вам его учить.

Гид: что изучать, чтобы получить ИТ-профессию

Планы на будущий год.

Зачем нужен язык R
Зачем нужен язык R

Для бигдаты, аналитики и точной статистики

Как работает пузырьковая сортировка
Как работает пузырьковая сортировка

Самый простой, но не самый эффективный алгоритм.

ЭТО RAID
ЭТО RAID

Как устроено избыточное хранение данных.

Что о вас на самом деле знают Google и Facebook (и все остальные)

Если коротко — они знают о вас почти всё. Но с этим тоже можно что-то сделать.

Как работает сортировка расчёской
Как работает сортировка расчёской

Улучшаем пузырьковую сортировку.

Роман Халкечев, руководитель направления аналитики в Яндекс.Еде и Лавке
Роман Халкечев, руководитель отдела аналитики в Яндекс.Еде и Лавке

Часть 1: о ШАД и начале карьеры.

Зачем нужны переменные в CSS
Зачем нужны переменные в CSS

Чтобы работать со стилями ещё гибче и проще.

Facebook хранил наши пароли в виде текста. Что это значит?
Facebook хранил наши пароли в виде текста. Что это значит?

Тут такое!

Двоичное счисление на пальцах

Все знают, что компьютеры состоят из единиц и нулей. Но что это значит на самом деле?

easy