Converter

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

Всем известно, что история имеет свойство повторяться.

Vi - консольный редактор, он умеет эмулировать для совместимости команды другого старого консольного редактора ex. Это всё такие археологические древности. Первое издание "Learning the vi" вышло в 1986 году. В современных переизданиях это зачем-то перепечатывается. На дворе 2024 год - а редактор Vim до сих пор жив и популярен среди разработчиков.

Основной идее является - использовать редактор не отрывая рук от клавиатуры.

Утверждается, что скорость взаимодействия с редактором увеличится и в работу привенесутся новые краски - а именно, поиск решения как можно сделать определенное действие быстрее использую сочетание клавиш).

 Nvim learning curve

Решил проверить данное утверждение.

Автор начал эту статью совместно с изучением редактора кода.

По мере изучения - статья будет меняться / дополняться.

Данная заметка не претендует на истину, к предоставленной информации прошу относиться скептически =)

Этап 1: Введение и установка

  1. Основы Vim

  2. Установка LazyVim

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

  1. Конфигурационные файлы
    • Ознакомьтесь с основными конфигурационными файлами (например, init.lua).
    • Настройка базовых параметров редактора (темы, шрифты, отображение номеров строк).

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

Во время изучения сделал для себя alias для быстрого запуска и чистки конфига:

alias clearvim="rm -Rf ~/.cache/nvim; rm -Rf ~/.local/state/nvim; rm -Rf ~/.local/share/nvim;" alias v="nvim"

Как использовать разные версии редактора

Есть множество версий редакторов на основе vim. Что бы с ними работать паралельно (или для изучения есть желание посмотреть)

git clone https://github.com/NvChad/starter ~/.config/nvim-nvchad

при запуске используйте :

NVIM_APPNAME=nvim-nvim-nvchad nvim

Подробнее тут

Этап 3: Продвинутые возможности

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

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

Важно понимать, что куча разработчиков делают настройки редактора под свои нужны - если полагаете, что возьмете все готовое, хоткеи разберете и будет работать - то это не так. Настройка редактора - это процесс, который занимает много времени и требует понимания того, что вы делаете. Потому, если проект надо сдавать завтра сутра - не тратьте время на изучение редактора !!

И прежде чем начать что-то делать - имейте ввиду - это вызывает зависимость!

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

vim.g.autoformat = false

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

vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile" }, { pattern = { "*.md", ".env" }, command = "lua vim.diagnostic.disable()", nested = false, })
  • Настройка автозавершения и подсветки синтаксиса с помощью nvim-cmp и treesitter. TODO:// настройка nvim-cmp (как отключить snippet - каторые не используются) TODO:// snippet для console.log
  1. Рабочие процессы и макросы
    • Изучите, как создавать и использовать макросы для автоматизации рутинных задач.
    • Настройка и использование скриптов для ускорения работы.

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

  1. Практика

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

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

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

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

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

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

Заметки

Ресурсы

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

Следуя этому плану, вы сможете постепенно освоить LazyVim, начиная с основ и заканчивая продвинутыми настройками и реальными проектами.