29 марта 2026 года состоялся релиз текстового редактора Neovim версии 0.12, а 6 апреля вышел корректирующий выпуск 0.12.1. Это один из крупнейших релизов за последнее время: закрыто более 340 задач, добавлены встроенный менеджер плагинов, HTTP-клиент, команда перезапуска, существенно расширен встроенный LSP-клиент и экспериментально переработана подсистема сообщений.
Несовместимые изменения:
- удалены устаревшие API
vim.diagnostic; - Ctrl-R в режиме вставки теперь работает аналогично вставке;
- прекращена поддержка Python 3.7 и 3.8 в провайдерах;
- плагин
shellmenuудалён,tohtmlперемещён вpack/dist/opt/; - Treesitter: директива
offset!применяется ко всем captures,get_parserвозвращает nil при ошибке, удалена опция «all» в Query:iter_matches; - LSP:
textDocument/codeLensпереписан как decoration provider; - UI:
ext_messagesотвязан от сетки сообщений; - Поддержка RFC 3986 в
path_with_url.
Встроенный менеджер плагинов (vim.pack):
Добавлен экспериментальный встроенный менеджер плагинов vim.pack. Поддерживает lockfile для фиксации версий, офлайн-обновления, указание целевых версий, буфер подтверждения с навигацией по [[[/]] и code actions. Информация о VCS доступна через vim.pack.get. Прогресс операций отображается через nvim_echo с kind=progress. Интегрирован с checkhealth.
LSP:
Встроенный LSP-клиент получил масштабное обновление:
- новая команда :lsp для интерактивного управления клиентами;
- vim.lsp.enable и vim.lsp.is_enabled для управления LSP-серверами по необходимости;
- встроенное автодополнение в режиме вставки с поддержкой completionItem/resolve (при
completeopt=popup), предпросмотр сниппетов и цветов, поддержка CompletionItem.labelDetails; - инкрементальное выделение через textDocument/selectionRange, в том числе в operator-pending режиме;
- textDocument/documentColor включён по умолчанию, добавлена поддержка colorPresentation;
- поддержка textDocument/documentLink, textDocument/inlineCompletion, textDocument/onTypeFormatting;
- codeLens отображается виртуальными строками через decoration provider;
- улучшения семантических токенов: многострочные токены, запросы range и full;
- поддержка workspace-диагностики, динамической регистрации, запроса diagnostic/refresh;
- подсветка переименовываемого символа, поддержка annotated text edits и linked editing ranges;
- новые маппинги по умолчанию: grt — переход к определению типа, grx — запуск codeLens;
- LSP-клиенты автоматически отсоединяются при смене filetype;
- устаревшими объявлены vim.lsp.stop_client и vim.lsp.util.stylize_markdown.
Команда :restart и :detach:
Новая команда :restart перезапускает Nvim и переподключает текущий UI. Поддержка :detach и :restart на Windows. Обе работают на всех платформах.
Сеть (vim.net):
Добавлен встроенный HTTP-клиент vim.net.request и :edit url. Вариант vim.net.request с аргументом outbuf записывает ответ сервера непосредственно в указанный буфер.
UI и сообщения:
- ui2 — экспериментальная переработка подсистемы сообщений и командной строки, ext_cmdline/messages для TUI;
- новые группы подсветки hl-StderrMsg и hl-StdoutMsg;
-
nvim_echoподдерживает события прогресса сkind=progress; - статусная строка по умолчанию показывает счётчики диагностики, прогресс и статус LSP, состояние занятости буфера;
- рамка всплывающего меню
pumborderсо скроллбаром.
Lua API:
- новые типы vim.Pos и vim.Range для работы с позициями и диапазонами, конвертация между форматами позиций курсора, extmark, Vim и LSP;
- vim.list.bisect, vim.list.unique;
- Iter:unique, Iter:peek и Iter:skip для non-list итераторов;
- vim.wait возвращает результаты callback;
- vim.json.encode поддерживает pretty-print и sort_keys;
- параметр behavior в виде функции для
tbl_extendиtbl_deep_extend; - новый модуль vim._async.
Диагностика:
- diagnostic.status с пользовательским форматированием и подсветкой;
- фильтр enabled, опция format для
setloclist/setqflist; - Callback on_jump;
- переход к связанной информации из
open_float; - наложение подсветок DiagnosticUnnecessary и DiagnosticDeprecated.
Treesitter:
- подсветка Markdown включена по умолчанию;
- инкрементальное выделение на основе Treesitter.
Прочие изменения:
- :wall ++p создаёт родительские директории для каждого буфера;
-
exrcищет конфигурационные файлы в родительских директориях с обязательным подтверждением через :trust; - :source может выполнять Lua-блоки и Treesitter-инъекции;
- nvim_open_tabpage — API для программного создания вкладок;
- nvim_set_hl с параметром update обновляет отдельные атрибуты подсветки без затирания остальных;
- стиль bold и пользовательские символы в
winborder; - поддержка statusline в плавающих окнах;
- переименование .nvimlog в nvim.log;
- подсветка активного tabstop в сниппетах;
- Встроенный runtime для undotree;
- shelltemp=false по умолчанию;
- Spellfile хранится в stdpath data;
- максимум результатов поиска увеличен до 999;
- SSH configuration parser;
- синхронизированный вывод в терминале (mode 2026);
- терминал показывает exit code через виртуальный текст.
Neovim 0.12.1:
Корректирующий выпуск от 6 апреля 2026 с 26 исправлениями ошибок и одной новой возможностью — :restart переподключает все UI. Среди важных исправлений:
- :restart: наследование stderr на Unix, корректная обработка --headless;
- LSP: повторный запрос codeLens refresh, предпросмотр сниппетов, сброс версии document color;
- ui2: мерцание при входе в pager, некорректные ссылки на буфер, обновление spill indicator;
- Treesitter: выделение с unicode-символами в конце узла;
- vim.net: обработка архивных URL через tar/zip;
- vim.pack: использование uv.available_parallelism для вычисления числа потоков;
- Патчи безопасности Vim: обход модели безопасности через modeline, обход пути в zip.vim;
- Оптимизация vim.pos: использование nvim_buf_line_count вместо загрузки всех строк.
>>> Changelog 0.12.0
>>> Changelog 0.12.1
>>> Список релизов








