Neovim (nvim-lspconfig)


Using esbonio with Neovim’s built in language client

This guide covers how to setup esbonio with Neovim’s built-in language client.


The language server can be installed using pip, or if you prefer, conda.


Basic configuration for the language server is available through the nvim-lspconfig plugin.

Configuration settings are provided via the settings table passed to lspconfig.esbonio.setup {}. Perhaps the most important setting is esbonio.sphinx.pythonCommand (string[]) which tells the server which Python envrionment to use when building your documentation.

Another important setting is esbonio.sphinx.buildCommand (string[]) which tells the server the command you use to build your documentation.

lspconfig.esbonio.setup {
  settings = {
    sphinx = {
      pythonCommand = { "/path/to/project/.venv/bin/python" },
      buildCommand = { "sphinx-build", "-M", "html", "docs", "docs/_build" },

See Configuration for a complete reference of all configuration options supported by the server.


Do you use Nix?

If you have the Nix package manager on your machine you can try out our example configuration with the following command:

nix run github:swyddfa/esbonio/beta#nvim-lspconfig

To try the example configuration on your machine.

  1. Download init.vim to a folder of your choosing.

  2. Ensure you have the nvim-lspconfig plugin installed.

  3. Open a terminal in the directory containing this file and run the following command to load this config isolated from your existing configuration:

    nvim -u init.vim


You will also have to increase the LSP logging level in Neovim itself.

lua << EOF

You can then open the log file with the command :LspLog. See here for more details.