Neovim Autocomplete Not Working (blink.cmp / nvim-cmp)

Workaround available Windows, macOS, Linux Updated October 21, 2026

Quick answer

Completion menus that show only buffer words, or nothing, usually mean the LSP isn't attached or the completion plugin's capabilities aren't passed to the server. Confirm the LSP first, then wire capabilities.

Most likely fix: Confirm the LSP is attached.

Symptoms

No completion popup, or only buffer/path suggestions and no LSP items.

Why it happens

  • LSP client not attached to the buffer
  • Completion capabilities not passed to the language server
  • Plugin not loaded or misconfigured sources
  • Config mixes Neovim 0.12 native completion with a plugin

How to fix it

Try these in order — the most common fix is first.

  1. 1. Confirm the LSP is attached

    1. Run :checkhealth vim.lsp (or :LspInfo)
    2. If nothing is attached, fix that first (see 'Neovim LSP Not Working')
  2. 2. Pass completion capabilities

    1. blink.cmp: vim.lsp.config('*', { capabilities = require('blink.cmp').get_lsp_capabilities() })
    2. nvim-cmp: merge require('cmp_nvim_lsp').default_capabilities() into the server config
    3. Restart Neovim
  3. 3. Check the plugin

    1. nvim-cmp: run :CmpStatus to see which sources are active
    2. blink.cmp: run :checkhealth blink.cmp
  4. 4. Or use built-in completion (0.12+)

    1. Set vim.o.autocomplete = true for native insert-mode completion
    2. Enable LSP completion with vim.lsp.completion.enable() in an LspAttach autocommand

This guide also covers

  • neovim autocomplete not working
  • blink.cmp not showing lsp
  • nvim-cmp not working
  • neovim completion not showing

Still not working?

If Neovim keeps failing, you're not alone. See every Neovim problem users report or the alternatives people switch to.

Other Neovim errors