vimtricks.wiki Concise Vim tricks, one at a time.

How do I set up Neovim's built-in LSP client?

Answer

vim.lsp.buf.definition()

Explanation

Neovim has a built-in LSP (Language Server Protocol) client that provides IDE-like features without plugins. You just need to configure language servers.

How it works

  • Neovim's built-in LSP client connects to language servers
  • nvim-lspconfig plugin simplifies server configuration
  • The client provides completion, diagnostics, go-to-definition, etc.

Example

-- In init.lua
require('lspconfig').pyright.setup{}
require('lspconfig').tsserver.setup{}

vim.keymap.set('n', 'gd', vim.lsp.buf.definition)
vim.keymap.set('n', 'K', vim.lsp.buf.hover)
vim.keymap.set('n', 'gr', vim.lsp.buf.references)

Tips

  • Install: Plug 'neovim/nvim-lspconfig'
  • Requires Neovim 0.5+
  • Language servers must be installed separately (pyright, tsserver, gopls, etc.)
  • nvim-cmp plugin provides the completion UI
  • :LspInfo shows LSP client status

Next

How do you yank a single word into a named register?