I am on macOS. My ultimate goal is to speed up dbext.vim and I found the page mentioned DBI which depends on has('perl').

So I'd like to know how to build Neovim to have Perl enabled... Now I am using a neovim which was installed by brew install neovim but it seems I have to build from sources to enable Perl.

I am also interested in the way how Deoplete made my nvim has('python3') from 0 to 1 and didn't require a rebuild.

Last but not least.. How do other plugins achieve Async operations? I may see if it is possible to make dbext.vim run async so I will be less mindful of its speed...

Thanks in advance!

  • Welcome to the site! In the future, please only ask about one issue at a time. If you have multiple issues, open them as individual questions instead of including them all in one question.
    – Rich
    Commented Nov 9, 2017 at 11:18

2 Answers 2


Neovim is always compiled with all the features, so rebuilding won't help you: Perl support simply isn't included in the version of Neovim you are running. See (:help feature-compile, :help nvim-features-missing).

However, later versions of Neovim do include Perl support, so upgrading will add this feature for you.

As for your other question about Python, not all features require a re-compile to be enabled (see :help feature-list). has('python3') returns whether the Python 3 API is currently available, not whether it was compiled in. (Which it was: see above.)

Asynchronous operations are performed using "jobs". See :help job-control.


Update: neovim now (January 2020) supports perl as well as has('perl'). I update neovim very often to the latest development version, and I only noticed the feature today when running checkhealth. If you are using a stable version of neovim, you probably will not see support for perl yet.

Output of <code>checkhealth</code> showing perl support

  • 1
    Good spot! I've updated my answer to link to yours so that it's not misleading for future readers.
    – Rich
    Commented Jan 23, 2020 at 17:16

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.