In ~/.config/nvim/plugged/nvim-completion-manager/pythonx/cm.py, line 151 is

        self.nvim.call('cm#complete', name, ctx, startcol, matches, refresh, async=True)

I'm using Python 3.8 and copying the file into an online interpreter for Python does not result in any syntax errors, so it confuses me that neovim is interpreting it as such.

While 3.8 is installed, I also found /usr/lib/python2.7 which may be being used.

I get Error detected while processing function <SNR>35_on_core_channel_error Shows when nvim starts

When I press enter, it says:

Error detected while processing function <SNR>35_on_core_channel_error:
line    1:

(doesn't tell me the file or the line code (unless it's just empty).

Pressing enter again:

nvim-completion-manger core channel terminated.

Then I press enter to go in to nvim.

My ~/.config/nvim/init.vim is

call plug#begin()
Plug 'roxma/nvim-completion-manager'
Plug 'SirVer/ultisnips'
Plug 'honza/vim-snippets'
call plug#end()

I tried replacing the leading spaces with tabs but I got the same output.

All of this is followed directly from https://www.linode.com/docs/guides/how-to-install-neovim-and-plugins-with-vim-plug/

File: https://onlinegdb.com/ByyfKgK6w (raises an error, but syntax is fine), system is Manjaro ARM.


1 Answer 1


The syntax error is happening because the function call is passing an async=True keyword argument. The async term has become a reserved keyword in recent Python, so it's not allowed as a keyword argument anymore.

If you load this source code in a Python interpreter, it's quite possible that it won't complain about it right away. Python is an interpreted language and many errors (such as this one) will only be raised when the code is actually executed.

If you go to the roxma/nvim-completion-manager page, you'll see a warning telling you that this repo is deprecated and you should use ncm2 instead.

So update your init.vim to replace the roxma/nvim-completion-manager with:

Plug 'ncm2/ncm2'

The source code has changed considerably in ncm2, but a similar line is still around, but now using async_ with a trailing underscore as the keyword argument name:

def complete(self, ctx, startccol, matches, refresh=False):
    self.nvim.call('ncm2#complete', ctx, startccol,
                   matches, refresh, async_=True)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.