Neovim & LazyVim Documentation
Neovim is a hyperextensible, Lua-powered text editor built on Vim's foundation. It is the standard modern choice for terminal-based development, server administration, and DevOps configuration editing. LazyVim is a popular setup built on top of Neovim.
Who This Track Is For
- Developers who want a fast, keyboard-driven editor that works everywhere SSH reaches
- Server operators editing configs, scripts, and code directly on remote machines
- Engineers wanting a fully configured IDE inside a terminal — without a GUI
- Anyone moving from basic
nano/vimto a professional Neovim setup
What You Will Build
- A fluent understanding of modal editing and Vim motions
- A complete Lua-based Neovim configuration from scratch
- A full IDE setup: LSP, autocompletion, file navigation, Git, and syntax highlighting
- Repeatable, scripted configuration deployable across any server
How To Use This Track
- Modules 1–4 focus on core editing — master these before touching plugins
- Modules 5–6 cover configuration — build your own
init.lua - Modules 7–11 add IDE features via plugins
- Modules 12–14 target language-specific and workflow patterns
- Module 15 is the cheatsheet for daily reference
- Module 16 is the popular plugins catalog — browse when looking for new tools
- Module 17 is the LazyVim Distribution — pre-configured Neovim setup with curated plugins and keymaps
- LazyVim Fast-Track: If you want an IDE immediately — go to Module 17 after completing Modules 1-4
Choose Your Path
| Path | Description | Pros | Cons |
|---|---|---|---|
| Vanilla Neovim | Build from scratch | Full understanding of every line | Takes time to build |
| LazyVim | Pre-configured IDE | Batteries included, instant setup | Harder to understand internals initially |
Learning Path
| Module | Focus | Lessons |
|---|---|---|
| 1. Introduction | What Neovim is, installation, vim philosophy | 4 |
| 2. Modal Editing | Modes, navigation, insert, visual | 4 |
| 3. Text Objects and Motions | Text objects, operators, combinations | 3 |
| 4. Editing Commands | Undo/redo, search/replace, macros, marks | 4 |
| 5. Buffers, Windows, and Tabs | Workspace management | 3 |
| 6. Configuration with Lua | init.lua, options, keymaps, Lua basics | 4 |
| 7. Plugin Management | lazy.nvim setup and patterns | 3 |
| 8. LSP and Completion | nvim-lspconfig, nvim-cmp, diagnostics | 3 |
| 9. Treesitter | Syntax, highlighting, code folding | 2 |
| 10. File Navigation | Telescope, Neo-tree, Harpoon | 3 |
| 11. Git Integration | Gitsigns, Neogit, diff workflows | 3 |
| 12. Terminal and Workflow | Terminal mode, tmux integration | 3 |
| 13. Language-Specific Setup | Lua, Python, JS, PHP/WordPress | 3 |
| 14. Troubleshooting | Errors, LSP debugging, performance | 3 |
| 15. Cheatsheet | Motions, commands, plugin shortcuts | 3 |
| 16. Popular Plugins | UI, editing, code quality, AI, data, productivity | 9 |
| 17. LazyVim Distribution | Overview, installation, configuration, plugins, extras, cheatsheet, recipes | 7 |
Architecture at a Glance
| Layer | What it does |
|---|---|
| Neovim core | Modal editing, Lua API, async jobs, built-in LSP and Treesitter |
| Plugin layer | Telescope, Gitsigns, Neo-tree, completion, formatting, and other tooling |
| LazyVim layer | Pre-configured defaults, keymaps, and curated plugins on top of the same core |
Quick Start
install-and-launch.sh
# Install on Debian/Ubuntu
sudo apt install -y neovim
# Or install latest stable via AppImage
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.tar.gz
tar -C /opt -xzf nvim-linux-x86_64.tar.gz
ln -s /opt/nvim-linux-x86_64/bin/nvim /usr/local/bin/nvim
# Check version (need 0.9+ for this track)
nvim --version
# Open a file
nvim myfile.txt
warning
Press i to enter Insert mode and type text. Press Esc to return to Normal mode. Press :wq to save and quit. This is the most critical habit from day one.
The Modal Editing Mental Model
Start in Normal mode, jump into Insert mode only when typing, and return to Normal mode as soon as possible. Module 2 covers the full mode system in detail.
Neovim vs Other Editors
| Feature | Neovim | VS Code | Vim | nano |
|---|---|---|---|---|
| SSH usable | ✅ Native | ⚠️ SSH extension | ✅ | ✅ |
| Modal editing | ✅ | ⚠️ Extension | ✅ | ❌ |
| Lua scripting | ✅ | ⚠️ NodeJS | ❌ VimL | ❌ |
| Built-in LSP | ✅ | ✅ Native | ❌ | ❌ |
| Memory usage | ~30MB | ~300MB+ | ~15MB | ~5MB |
| Startup speed | Fast (~50ms) | Slow (~3s) | Very fast | Instant |
| Learning curve | Steep | Low | Steep | None |
Prerequisites
- Comfortable with Linux terminal basics
- SSH access to practice on (or local Linux/macOS)
- Optional: basic Vim exposure (helpful but not required)
Success Criteria
By the end of this track, you can:
- Edit files efficiently using modal editing (no arrow keys, no mouse)
- Build and maintain a full Lua-based Neovim configuration
- Understand and customize LazyVim — the premier Neovim distribution
- Use LSP for autocompletion, diagnostics, and go-to-definition
- Navigate large codebases with Telescope and Harpoon
- Manage Git operations without leaving Neovim
Next Step
Start with What is Neovim.