В начале любого разговора про Vim стоит ложный выбор: бросить свой редактор, переехать в терминал, потратить выходные на конфиги.
Ничего этого делать не нужно. Ставите расширение Vim в VS Code — и модальное редактирование у вас уже сегодня, вместе с отладчиком, расширениями и настройками команды ровно там, где они были.
Почти для всех это правильный первый шаг. Но стоит понимать, что именно вы получаете.
Что получаете — и это большая часть
Расширение даёт настоящий язык: обычный режим и режим вставки, hjkl, операторы, движения, текстовые объекты, счётчики, точку, визуальный режим, метки, макросы, регистры, поиск с n.
Этот список — и есть вся причина учить Vim. ciw, di(, d2w, . — грамматика работает, а мышечная память, которую вы наберёте, настоящая и переносится куда угодно.
Честный вывод: 90% ежедневной пользы от Vim доступны без единого открытого .vimrc и без единого слова про менеджеры плагинов.
Чего не получаете
Три вещи правда отличаются, и лучше знать о них заранее.
Ex-команды местами дырявые. :s и :g работают в обычных случаях. Полезете в экзотику — упрётесь в края. Если ваша мышечная память построена на плотном использовании :g, вы это заметите.
Конфиг — не .vimrc. Ваши привязки живут в JSON-настройках VS Code, на диалекте расширения. Это нормально и даже удобнее — но конфиг, написанный здесь, не переносится в настоящий .vim на сервере.
Иногда он спорит с хозяином. У VS Code свои представления о мультикурсоре, свои аккорды и своя модель редактирования под капотом. В большинстве дней вы не заметите. Иногда попадёте на шов, где команда работает почти правильно, — и это дезориентирует сильнее, чем если бы она честно не работала.
В первый день ничего из этого не важно. Всё из этого — причина, по которой люди со временем пробуют настоящий Vim.
Единственная настройка, которая важна
Одна опция стоит больше всех остальных вместе: автоповтор клавиш.
На macOS, если держать j, напечатается одна j, а потом выскочит меню акцентов — и навигация на hjkl ощущается сломанной. Это не расширение, это системная настройка по умолчанию. Включите быстрый автоповтор для VS Code — и это станет другим опытом.
Стрелки можете не трогать, но посмотрите заметку в почему hjkl: именно запасной выход и мешает привычке сформироваться.
Больше в первый день не ставьте ничего. Инстинкт коллекционировать плагины — тот же самый, что заставляет зубрить шпаргалки, и результат у него такой же.
Когда переезжать
Вы поймёте. Обычно начинается с раздражения: вы на сервере по SSH, и руки пробуют ciw в nano. Хочется, чтобы редактирование было одинаковым в любом терминале, а не только на машине с вашим расширением.
Вот это и есть настоящая причина переходить на Vim или Neovim — не скорость и не пуризм. Вездесущность. Он есть на каждой коробке, куда вы когда-либо зайдёте по SSH, и со временем то, что ваш редактор не ездит с вами, начинает ощущаться как хромота.
Но это шестой месяц. Первый — плохой: вы учили бы модальное редактирование, новую среду и язык конфигов одновременно, а на этом пересечении большинство и бросает.
Порядок, который работает
Учите грамматику там, где вы уже есть. Заведите ciw, di(, точку и движения в руки, пока вокруг ваши привычные инструменты, а работа идёт своим чередом.
Потом, если захочется терминала, вы будете учить одну новую вещь, а не три.
Начните с грамматики — она в браузере, ставить нечего, и это ровно та часть, которая переносится в любой редактор, где вы окажетесь.