Vim LazyVim

NVIM для разработчика

  • NVIM для разработчика

    Идея была простая и оттого подозрительная: редактор, из которого руки не уходят с клавиатуры. Не канцелярия, не «интерфейс для продвинутых», а разговор напрямую с буфером — через регистры, через режимы, через последовательности байтов, которые ты держишь в голове, как некогда держал адреса вольфрамовой лампы.

    Vi — консольный редактор, он эмулирует для совместимости команды другого старого консольного редактора ex. Археология, да. Первое издание "Learning the vi" вышло в 1986 году, и в современных переизданиях это до сих пор перепечатывается, как молитву, которую никто уже не читает вслух. На дворе 2025 год — а Vim до сих пор жив и популярен среди разработчиков. Вот вам и «археология»: он работает дольше, чем живут корпоративные стандарты, дольше, чем живут модные фреймворки, дольше, чем живут гуру, которые три года назад клялись, что без их проприетарной IDE писать код невозможно.

    Основная идея — не отрывать руки от клавиатуры. Слепой набор. Если ты до сих пор не освоил его — приступай, пока не поздно. Я в процессе взаимодействия с редактором приобрёл split keyboard. Попробовал — понравилось. Очень удобно. Сложно что-то делать, когда в голове звучит «забыл, что делал, пока искал кнопку» — это не цитата, это диагноз, выписанный мне самому себе.

    Если ты думаешь перемещать курсор стрелочками — знай, этот путь неправильный. Сразу отключить возможность перемещения стрелочками. Не «рассмотреть отключение». Отключить.

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

 Nvim learning curve

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

Я начал с готовой сборки LazyVim. Полагаю, что в любом деле правильно начинать с азов. Изначально ставил кучу дополнительных плагинов, считая, что это ускорит разработку, — но как только знакомишься с азами, понимаешь: можно было иначе. Vim имеет множество готовых сборок, поддерживаемых комьюнити. Без понимания азов ты будешь вечностью гуглить, как починить или изменить чужие настройки, и ни скорости, ни прироста производительности в первое время не увидишь. Азы не стоит откладывать в долгий ящик. С них и начинай, а параллельно читай документацию — не «изучайте», а читай, как читают листинг: построчно, вслух, с подозрением.

Введение и установка

  1. Основы Vim

Базовая настройка и конфигурация

  1. Конфигурационные файлы

!!! Всю основную информацию можно найти в официальной документации сборки LazyVim + есть книга в свободном доступе.

Продвинутые возможности

  1. Расширенная конфигурация

Данный плагин позволяет использовать кириллицу для навигации

Ты хоть раз пробовал думать руками, набирая кириллицей? Вот. А теперь представь, что клавиши у тебя под пальцами — те же опкоды, только на человеческом языке.

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

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

Как отключить автоформат кода глобально

vim.g.autoformat = false

Как отключить диагностику для некоторых файлов (.env , .md)

vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile" }, {
  pattern = { "*.md", ".env" },
  command = "lua vim.diagnostic.disable()",
  nested = false,
})

Две строчки. Меньше, чем у вступительного поста любого гуру о «продуктивности». Именно это и раздражает: столько пафоса вокруг инструмента, который по сути — умный редактор текста, считающий символы.

  1. Рабочие процессы и макросы
    • Изучите, как создавать и использовать макросы для автоматизации рутинных задач.
    • Настройка и использование скриптов для ускорения работы.

Практическое применение

  1. Практика

    • Выполняйте различные задачи по программированию или редактированию текста, используя LazyVim.
    • Настройте редактор под свои личные нужды и предпочтения.
  2. Реальные проекты

    • Примените свои знания на реальных проектах.
    • Настройте LazyVim для конкретных языков программирования и задач.

Углубленное изучение и участие в сообществе

  1. Углубленное изучение

    • Ознакомьтесь с документацией и возможностями более сложных плагинов.
    • Экспериментируйте с настройками и конфигурацией.
  2. Сообщество и поддержка

    • Участвуйте в обсуждениях на форумах и в сообществах пользователей LazyVim.
    • Поддерживайте и развивайте проекты на основе LazyVim.

Заметки

Ресурсы

  • Документация LazyVim: LazyVim Documentation
  • Учебники и руководства по Vim: Vim Adventures, Vimcasts
  • Сообщества и форумы: Reddit (r/vim, r/neovim), Stack Overflow.