NCM2 - Мощное автодополнение для Neovim без тормозов
Репозиторий давно не обновлялся
Последнее обновление было 1 год назад.
Вы когда-нибудь завидовали плавному автодополнению в современных IDE, но не хотели отказываться от Vim? Знакомо чувство, когда редактор зависает на пару секунд, пока подгружаются подсказки? NCM2 решает эти проблемы, предлагая быструю и асинхронную систему автодополнения специально для Neovim.
Что такое NCM2 и зачем он нужен
NCM2 — это минималистичный фреймворк для автодополнения кода, который работает асинхронно и не блокирует ваш редактор. В отличие от встроенных решений Vim, он:
- Не заставляет вас ждать завершения анализа кода
- Поддерживает множество языков программирования
- Позволяет легко расширять функциональность через плагины

Ключевые возможности
1. Асинхронность без тормозов
Главный козырь NCM2 — выполнение анализа кода в фоновом режиме. Пока вы печатаете, система продолжает работать, не блокируя интерфейс.
2. Умное контекстное автодополнение
NCM2 понимает, в каком контексте вы работаете:
- CSS-подсказки внутри HTML-тега style
- JavaScript-подсказки внутри тега script
- И многое другое
3. Поддержка сниппетов
Просто установите ncm2-snippet и получайте:
- Быструю вставку шаблонов кода
- Поддержку параметризованных сниппетов
- Возможность создавать свои шаблоны
4. Интеграция с Language Server Protocol
Через дополнительные плагины NCM2 может работать с LSP, предоставляя:
- Автодополнение на основе семантического анализа
- Подсказки по типам
- Навигацию по коду
Как установить
Для менеджера плагинов lazy.nvim:
return {
{ "roxma/nvim-yarp" },
{
"ncm2/ncm2",
config = function()
vim.opt.completeopt = { "noinsert", "menuone", "noselect" }
vim.api.nvim_create_autocmd({'BufEnter'}, {
callback = function() vim.call('ncm2#enable_for_buffer') end
})
end,
},
{ 'ncm2/ncm2-bufword' },
{ 'ncm2/ncm2-path' },
}
Или для vim-plug:
Plug 'ncm2/ncm2'
Plug 'roxma/nvim-yarp'
" Основные настройки
autocmd BufEnter * call ncm2#enable_for_buffer()
set completeopt=noinsert,menuone,noselect
" Источники автодополнения
Plug 'ncm2/ncm2-bufword'
Plug 'ncm2/ncm2-path'
Полезные настройки
Добавьте в ваш vimrc эти хоткеи для большего комфорта:
" Убираем лишние сообщения
set shortmess+=c
" Правильная работа Enter в меню автодополнения
inoremap <expr> <CR> (pumvisible() ? "\<c-y>\<cr>" : "\<CR>")
" Навигация по подсказкам Tab/Shift-Tab
inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"
Кому подойдет NCM2
Этот фреймворк особенно понравится:
- Разработчикам, которые ценят скорость работы
- Тем, кто работает с несколькими языками программирования
- Энтузиастам, любящим кастомизировать свою среду разработки
NCM2 — это свежий взгляд на автодополнение в Neovim. Он сочетает в себе скорость, гибкость и богатые возможности. Если вы еще не пробовали — самое время установить и ощутить разницу. А если уже используете — возможно, узнали что-то новое из этой статьи.
Главное преимущество? Он просто работает и не мешает вам кодить. А разве не этого мы все хотим от инструментов?
