# Neovim **Neovim** is a modal text editor forked from Vim, built to be extensible and embeddable. Modal editing: the keyboard behaves differently depending on mode—normal mode keys are commands (move, delete, change), insert mode keys are literal text. This lets almost every key act as a command without touching the mouse. Neovim runs entirely in the terminal, needs no display server, and starts instantly on resource-constrained remote nodes. Combined with [[tmux|Tmux]], it forms a complete development environment that works identically whether you're on a laptop or SSH'd into a compute cluster. Neovim's main innovation over Vim: a built-in Lua runtime and stable plugin API (LSP client, Treesitter, async jobs). Configure and extend with Lua instead of Vimscript, making Neovim a real IDE without bloat. ```bash $ nvim file.txt # edit file $ nvim +10 file.txt # edit file, jump to line 10 $ nvim -c "set number" # edit with command $ :q # quit (in Neovim) ``` Configuration at `~/.config/nvim/init.lua` (modern) or `init.vim` (legacy Vimscript). Start with minimal config, extend as needed. Plugins transform Neovim into a full IDE: language servers for autocomplete, Treesitter for syntax, fuzzy finders, linters, formatters. ## Concepts 1. [[neovim-basics|Basics]] 2. [[neovim-modes|Modes]] 3. [[neovim-navigation|Navigation]] 4. [[neovim-editing|Editing]] 5. [[neovim-operators-and-motions|Operators and motions]] 6. [[neovim-registers-and-copy|Registers and copy]] 7. [[neovim-searching-and-replacing|Searching and replacing]] 8. [[neovim-buffers-windows-tabs|Buffers, windows, tabs]] 9. [[neovim-configuration|Configuration]] 10. [[neovim-keybindings|Keybindings]] 11. [[neovim-plugins|Plugins]] 12. [[neovim-lsp|LSP]] 13. [[neovim-lua-scripting|Lua scripting]] 14. [[neovim-macros-and-automation|Macros and automation]]