Neovim-конфигурация с LSP, автодополнением, файловым деревом, Git-интеграцией, инлайн-диагностикой и русским интерфейсом.
- Neovim >= 0.12
tarиcurlв PATH (для установки парсеров treesitter)- C-компилятор (для сборки парсеров treesitter)
- Nerd Font (для иконок в blink.cmp, neo-tree, heirline, diagnostics)
| Плагин | Назначение |
|---|---|
| lazy.nvim | Менеджер плагинов |
| blink.cmp | Автодополнение (LSP, path, snippets, buffer) |
| nvim-treesitter | Управление парсерами и запросами |
| nvim-lspconfig | Конфигурации LSP-клиентов (vim.lsp.enable) |
| mason.nvim | Установщик LSP-серверов |
| mason-lspconfig.nvim | Связка Mason и nvim-lspconfig |
| neo-tree.nvim | Файловое дерево |
| heirline.nvim | Статуслайн + панель вкладок. Режимы (рус., с иконками), LSP, git, диагностика, кликабельные буферы |
| tiny-inline-diagnostic.nvim | Инлайн-диагностика в стиле powerline (вместо virtual text) |
| telescope.nvim | Нечёткий поиск |
| gitsigns.nvim | Git-декорации в gutter |
| which-key.nvim | Подсказки по хоткеям |
| nvim-autopairs | Авто-закрытие скобок и кавычек |
| markview.nvim | Превью Markdown / YAML / LaTeX прямо в буфере |
| friendly-snippets | Коллекция сниппетов |
| cyberdream.nvim | Цветовая схема Cyberdream |
Лидер-клавиша — Space.
| Клавиша | Действие |
|---|---|
<leader>w |
Сохранить файл |
<leader>q |
Закрыть окно |
| Клавиша | Действие |
|---|---|
<leader>ld |
Перейти к определению |
<leader>lr |
Найти использования |
<leader>d |
Показать документацию |
<leader>ln |
Переименовать |
<leader>la |
Действия с кодом |
| Клавиша | Действие |
|---|---|
<leader>ff |
Найти файл |
<leader>fg |
Поиск по тексту |
<leader>fb |
Открытые буферы |
<leader>fh |
Справка |
| Клавиша | Действие |
|---|---|
<leader>hs |
Добавить изменение |
<leader>hr |
Откатить изменение |
<leader>hS |
Добавить весь файл |
<leader>hR |
Откатить весь файл |
<leader>hp |
Показать изменения |
<leader>h<Down> |
Следующее изменение |
<leader>h<Up> |
Предыдущее изменение |
| Клавиша | Действие |
|---|---|
<leader>e |
Открыть проводник |
<leader>ec |
Закрыть проводник |
| Клавиша | Действие |
|---|---|
<leader><Left> |
Предыдущий буфер |
<leader><Right> |
Следующий буфер |
<leader>x |
Закрыть буфер (с переключением на другой) |
<leader>xo |
Закрыть все кроме текущего |
| Клавиша | Действие |
|---|---|
<leader>m |
Переключить превью Markdown |
| Клавиша | Действие |
|---|---|
Tab |
Принять вариант |
Enter |
Принять вариант |
Down |
Следующий вариант |
Up |
Предыдущий вариант |
Esc |
Закрыть меню |
git clone https://github.com/andrei-shal/nvim-ide.git ~/.config/nvim
nvim --headless "+Lazy! sync" +qaПри первом запуске lazy.nvim сам установится и загрузит все плагины. Neo-tree откроется автоматически.
Серверы устанавливаются через Mason: список в ensure_installed в lua/plugins/mason-lspconfig.lua.
Включаются через vim.lsp.enable() в lua/plugins/lspconfig.lua. Там же настраиваются специфичные параметры.
| Язык | Сервер | Особенности |
|---|---|---|
| Java | jdtls |
Lombok-поддержка через -javaagent (Mason-пакет включает lombok.jar) |
| Python | pyright |
— |
| C/C++ | clangd |
— |
JDTLS работает с Lombok через -javaagent. Mason при установке jdtls автоматически скачивает lombok.jar в каталог пакета. Выставляется JDTLS_JVM_ARGS, который встроенный конфиг jdtls конвертирует в --jvm-arg=-javaagent:....
Если используешь Lombok в проекте, добавь зависимость в pom.xml или build.gradle — это нужно для компиляции, LSP-поддержка работает отдельно.
Виртуальный текст (virtual_text) отключён. Вместо него используется tiny-inline-diagnostic.nvim — диагностика отображается инлайн в строке кода в стиле powerline. Поддерживаются все severity (error, warn, info, hint), отображение в insert/select mode, несколько сообщений на одной строке и мультилайн.
Парсеры treesitter предустановлены для:
lua,vim,vimdocpythonc,cppjava
Установить другие — :TSInstall <язык>.
Все подписи и подсказки на русском языке. Статуслайн включает иконки режимов (НАВИГАЦИЯ, РЕДАКТИР, ВЫДЕЛЕНИЕ и др.), иконку файла, git-ветку, список активных LSP-серверов, количество ошибок/предупреждений и позицию курсора. Панель вкладок кликабельна: левый клик — переключение, средний — закрытие. Tabline автоматически скрывается при одном открытом буфере.