Никто не любит конфиги (я уж точно). Они скучные и нединамичные. Но со своим конфигом Nvim’а я ношусь, как Голлум с кольцом Всевластья. Моя прелесссссть. Я боюсь потерять свой конфиг, боюсь, что с ним что-то случится. Другие хотят забрать тебя, моя прелессссть. Саша тебя им не отдаст, нет-нет...  Если кто-то отнимет мой конфиг - я буду гнаться за ним до Роковой Горы и даже прыгну в жерло вулкана. В этой статье я расскажу, как создать такой Конфиг Всевластья и как завоевать Гондор. Потому что ничего, кроме файла конфигурации, вам не нужно. Конфиг является полным хранилищем всех необходимых плагинов, настроек, горячих клавиш, скриптов. Это сердце колдовского редактора. Установка Neovim обычно выглядит так: Одной командой устанавливаем Neovim. Копируем свой конфиг в папку с конфигами редактора. Устанавливаем менеджер пакетов (одна команда) Устанавливаем плагины (одна команда) ОПЦИОНАЛЬНО: Подключаем LSP-сервер. Одна команда. Всё Спустя пару минут вы готовы к работе. И не просто готовы! Вы только что получили идеально точную копию той рабочей среды, к которой вы привыкли. Абсолютно всё, начиная с темы, используемых плагинов, и заканчивая горячими клавишами и нюансами настройки, будет повторять все ваши другие Nvim’ы. Рай для людей с обсессивно-компульсивным расстройством и программистов… С недавнего времени все любители колдовского редактора дружно пересели на конфиги, написанные на Lua. А чем мы хуже? Lua - это простой скриптовый язык. Он предназначен для пользователей, не являющихся профессиональными программистами. Большое внимание уделено простоте дизайна и лёгкости обучения. С помощью этого языка пишут скрипты для игр, некоторые интерфейсы, а еще пишут модульные и удобные конфиги колдовского редактора.  На Хабре про Lua есть даже целый канал.  Я разверну новую версию Neovim на Ubuntu 22.04 LTS, а конфиг будет заточен под Python. Но вы сможете легко его перенастроить под свои любимые языки программирования. ОПЦИОНАЛЬНО: Для лучшей работы конфигурационного файла и плагинов вам понадобится Neovim как минимум 8й версии. Установить ее можно здесь (я сейчас использую Nvim 9й версии, скачиваю его через PPA). Старые версии устанавливаются проще:  Установили? Теперь убедимся, что колдовской редактор попал в $PATH:  Откройте любой файл через:   Выглядеть должно примерно так:  Не пугайтесь. Это чистый Nvim. Он удобен, когда вы хотите быстро отредактировать файл на сервере, но для разработки все-таки нужно что-то пофункциональнее. Для того, чтобы выйти из колдовского редактора, наберите команду ZQ (обратите внимание, что команда написана прописными буквами). Затем создайте каталог по адресу ~/.config/nvim/ . А в нем разверните следующую структуру файлов:  nvim/├── init.lua ├── lua/ │   ├── keymaps.lua │   ├── plugins.lua │   ├── settings.lua │   └── treesitter.lua То есть у нас в каталоге nvim/ есть отдельный файл init.lua и каталог lua/ с 4мя файлами-модулями. Заполните все файлы:      Конфиг небольшой и несложный, а еще максимально подробно закомментирован для вашего удобства! Советую почитать про синтаксис Lua, а затем попытаться разобраться в самом конфиге самостоятельно. И тем не менее редактор пока не изменился, ведь мы не установили плагины! Для этого мы используем самый популярный менеджер плагинов/пакетов “Packer”. Устанавливаем (для Ubuntu):  После установки откроем в nvim файл plugins.lua и установим плагины командой :PackerSync Да, нужно набрать двоеточие и “PackerSync” вместе. Для удобства Nvim покажет набираемую команду в левом-нижнем углу.  Подробнее о том, как в колдовском редакторе работает режим командной строки мы поговорим в следующей части. После набора команды Packer установит плагины.  Затем выйдем из nvim, зайдем заново и полюбуемся результатом. Должно получиться как-то так: То есть красивый темный фон, нет ошибок и есть распознавание синтаксиса. Если не получилось: Внимательно читайте описание ошибок. Почти всегда они прямо укажут на проблему.  Проверьте, что в вашем терминале установлен один из Nerd Fonts. Конфиг должен работать и без них (хотя иконки не смогут отображаться), но вы предупреждены. Используйте команду :checkhealth . Она даст исчерпывающий перечень проблем, которые видит Nvim. Для большинства проблем он сразу предложит решение (например у меня стоял жутко старый node, и Nvim посоветовал обновиться). Одна из важных механик колдовского редактора (да и почти любой IDE) - это работа с LSP. Language Server Protocol - это формат общения Сервер-Клиент, который помогает работать с конкретным языком программирования. Благодаря LSP наш маленький (но гордый) Nvim научится делать автозаполнение, находить определения функций/классов и многое другое. В упрощенном виде LSP-коммуникация выглядит примерно так: Клиент → JavaScriptLanguageServer: "Расскажи, а вот в JavaScript мы блоки кода выделяем индентацией?" JavaScriptLanguageServer → Клиент: "Нет, у нас в JS фигурные скобки." Клиент → JavaScriptLanguageServer: "А это что такое?" JavaScriptLanguageServer → Клиент: "Это глобальная переменная."  LSP помогает нашему редактору работать с любыми языками программирования. Для установки серверов наберите команду  :LspInstall  и следуйте инструкциям. Советую для работы с Python выбрать сервер Pyright. После этого мы получим поддержку для .lua и .py файлов.  Через <F4> мы получаем доступ к файловому менеджеру, а через <F8> к структуре нашего файла. <CTRL+a> Даст доступ к fuzzy search, и позволит очень быстро находить и открывать файлы. У нас есть линтинг. С помощью <F5> можно выбрать формат нумерации строк в редакторе. <tab> и <shift-tab> позволят переключаться между табами. И у нас вообще появятся табы! И многое другое Конфигурация колдовского редактора - невероятно объемная тема. Надеюсь, что мне удалось помочь начинающим запустить Nvim в удобном виде, который сделает переход с привычной IDE чуть легче! И хочу поблагодарить людей, благодаря которым мне удалось хотя бы немного освоить конфигурирование Nvim: Пользователь Хабра с ником Rilkener Самый быстрый Nvim'ист на свете Primeagen А в следующей части мы познакомимся с Режимами в Nvim!     Python Backend Разработчик