Skip to content

Neovim for Developers

Neovim provides a fast, extensible editing environment suited to programming when configured with a small set of plugins and an LSP client. This article shows a minimal, modern setup without imposing a particular plugin manager.

Place the file at ~/.config/nvim/init.lua:

-- minimal init.lua
vim.o.number = true
vim.o.expandtab = true
vim.o.shiftwidth = 2
require('plugins') -- keep plugins in a separate file
require('lsp')

This separation keeps the core settings small and the plugin configuration isolated.

Use nvim-lspconfig to connect Neovim to language servers. Example (Lua):

local lspconfig = require('lspconfig')
lspconfig.pyright.setup({})
lspconfig.lua_ls.setup({})

Popular plugin managers include lazy.nvim and packer.nvim. A small plugin set for development includes: LSP client, completion engine (nvim-cmp), treesitter for syntax, and a file explorer.

LSP

Completion

Syntax

Open a project and verify:

  1. Diagnostics appear for syntax/type errors.
  2. gd or vim.lsp.buf.definition() jumps to symbol definitions.
  3. Completion suggestions are shown automatically while typing.

This topic is an important part of building a reliable Linux development workflow. Understanding it clearly will make later tasks easier, because it reduces guesswork and helps you recognize when a step is missing or misapplied.

  • Try the commands or configuration shown here in a safe test environment.
  • Compare how the concepts apply across different distributions or tools.
  • Keep a short note of what worked and what failed so you can diagnose future problems faster.
  • Revisit the related article in the series to deepen the connections between topics.
  • Skipping verification steps and assuming the system is configured correctly.
  • Copying commands without adapting paths, package names, or tool versions for your environment.
  • Treating this topic as an isolated tip rather than part of a larger workflow.