# Neovim Neovim is a modern fork of [[Vim]], focused on extensibility, usability, and embeddability. Started in 2014 by Thiago de Arruda, it refactored Vim's codebase to enable better plugin architecture, built-in [[Language Server Protocol (LSP)]] support, and Lua-based configuration — while maintaining full compatibility with Vim's editing model. ## Key differences from Vim - **Lua scripting**: First-class Lua support alongside Vimscript, enabling faster and more maintainable configuration - **Built-in LSP client**: Native [[Language Server Protocol (LSP)]] support for code completion, diagnostics, and refactoring - **Tree-sitter integration**: Incremental parsing for better syntax highlighting and code understanding - **Async architecture**: Built-in job control and async I/O - **Embeddable**: Designed as a component — GUIs and IDEs can embed Neovim as an editing engine - **Sensible defaults**: Better out-of-the-box experience than Vim ## Installation ```sh # Arch pacman -S neovim # Debian/Ubuntu sudo apt install neovim # macOS brew install neovim ``` ## Configuration Neovim is configured via `~/.config/nvim/init.lua` (Lua) or `~/.config/nvim/init.vim` (Vimscript): ```lua -- init.lua example vim.opt.number = true vim.opt.relativenumber = true vim.opt.expandtab = true vim.opt.shiftwidth = 4 vim.opt.tabstop = 4 vim.opt.termguicolors = true ``` ## Popular plugin ecosystem - **telescope.nvim**: Fuzzy finder (uses [[ripgrep]] and [[fzf]]-style matching) - **nvim-treesitter**: Tree-sitter configurations - **nvim-lspconfig**: LSP server configuration - **lazy.nvim**: Modern plugin manager - **nvim-cmp**: Autocompletion - **neo-tree.nvim**: File explorer - **lualine.nvim**: Status line ## Starter distributions Pre-configured Neovim setups for quick onboarding: - **LazyVim**: Full-featured IDE layer - **AstroNvim**: Aesthetic and functional - **NvChad**: Fast and minimal - **kickstart.nvim**: Minimal starting point by TJ DeVries ## References - https://neovim.io/ - https://github.com/neovim/neovim - https://en.wikipedia.org/wiki/Neovim ## Related - [[Vim]] - [[Vi]] - [[Nano]] - [[Language Server Protocol (LSP)]] - [[ripgrep]] - [[fzf]] - [[TMux]] - [[Git]] - [[Command Line Interface (CLI)]] - [[Shell]] - [[Linux]] - [[Visual Studio Code (VSCode)]]