Neovim 0.12.0 получил встроенный менеджер плагинов vim.pack и улучшения LSP

Ключевые изменения: нативный менеджер плагинов без сторонних зависимостей, автодополнение по LSP из коробки и новый API для remote-плагинов.

Обложка: Neovim 0.12.0 получил встроенный менеджер плагинов vim.pack и улучшения LSP

Neovim 0.12.0 вышел 29 марта 2026 года. Главное: встроенный менеджер плагинов vim.pack на Lua, улучшения LSP (Language Server Protocol) и терминала.

Ключевые выводы

— Встроенный менеджер плагинов vim.pack с функциями add, update, del и get

— Экспериментальный ui2 убирает сообщения «Press ENTER» (opt-in)

— Новая команда :checkhealth vim.lsp для диагностики LSP-серверов

— Терминал поддерживает синхронизированный вывод (DEC private mode 2026)

— Доступен для macOS, Linux и Windows

vim.pack — встроенный менеджер плагинов

До версии 0.12 управление плагинами требовало сторонний менеджер: lazy.nvim, packer, vim-plug. Теперь есть встроенный модуль vim.pack на Lua:

  • vim.pack.add() — установить плагины по URL
  • vim.pack.update() — обновить установленные
  • vim.pack.del() — удалить плагин
  • vim.pack.get() — получить информацию об установленных плагинах

Минимальная конфигурация в init.lua:

			vim.pack.add({
  "https://github.com/neovim/nvim-lspconfig",
  "https://github.com/nvim-treesitter/nvim-treesitter",
  "https://github.com/nvim-lua/plenary.nvim",
  "https://github.com/nvim-telescope/telescope.nvim",
})
		

vim.pack — это минимальное решение: установка, обновление, удаление. lazy.nvim предлагает ленивую загрузку, приоритизацию и UI для управления, чего во встроенном менеджере нет. Для новых конфигураций или простых сетапов с 5–10 плагинами vim.pack закрывает потребность без зависимостей.

Улучшения LSP

Language Server Protocol остаётся ключевым направлением развития Neovim:

  • Новая команда :checkhealth vim.lsp — показывает, какие LSP-серверы подключены к каким буферам и их статус
  • DiagnosticRelatedInformation теперь отображается в vim.diagnostic.open_float() — например, если ошибка компилятора связана с определением в другом файле, связь видна сразу, без переключения

Терминал и UX

  • Экспериментальный ui2. Новый слой UI убирает «Press ENTER or type command to continue». Включается вручную: require("vim._core.ui2").enable()
  • CSI 3 J — поддержка escape-последовательности для очистки scrollback-буфера терминала
  • Синхронизированный вывод (DEC private mode 2026) — приложения в :terminal группируют обновления экрана, избегая тиринга при быстрой перерисовке

Установка

Доступен для macOS (x86_64, arm64), Linux (AppImage/tar.gz для x86_64, arm64) и Windows (MSI/zip для x64, ARM64). Скачать — со страницы релиза.

			# macOS: снять карантинный атрибут
xattr -c ./nvim-macos-arm64.tar.gz
tar xzvf nvim-macos-arm64.tar.gz

# Linux: AppImage
chmod u+x nvim-linux-x86_64.appimage
./nvim-linux-x86_64.appimage
		
Частые вопросы
1
Заменяет ли vim.pack lazy.nvim?

Нет. vim.pack — минимальный менеджер без ленивой загрузки и UI. Для простых конфигураций с несколькими плагинами достаточен, для сложных сетапов lazy.nvim по-прежнему предпочтительнее.

2
Совместим ли 0.12 с моей конфигурацией?

В основном да, но есть breaking changes: удалены vim.diagnostic.disable() и vim.diagnostic.is_disabled(), изменено поведение vim.treesitter.get_parser(). Перед обновлением проверьте, не используют ли ваши плагины эти API.

3
Как обновиться?

Скачать бинарник со страницы релиза или через пакетный менеджер: brew upgrade neovim (macOS), pacman -Syu neovim (Arch).

4
Что нового для разработчиков плагинов?

vim.pack использует стандартные пути packpath — существующие плагины работают без изменений. Под капотом vim.pack автоматизирует git clone и git pull.

Выводы

Neovim 0.12.0 делает редактор самодостаточнее: встроенный vim.pack снижает порог входа, LSP-диагностика стала информативнее, терминал — стабильнее. Полный список изменений — в примечаниях к выпуску.