Learn Neovim from the basics to mastery: modal editing, Vim motions, Lua configuration (init.lua), lazy.nvim, Treesitter, LSP, autocompletion, and a production-grade setup.
Before diving deeper into Neovim, there are some basic skills and tools you need to prepare first, from fundamental terminal CLI skills and the concept of text editing, to installing Neovim v0.10+, a modern terminal, and a Nerd Font.

Before writing Neovim configuration, we need to understand where this modal editor came from: the evolution of Vi (1976), Vim (1991), and Neovim (2014) — and why its modern architecture makes it the top choice.

After understanding the modal editing philosophy, it is time to practice: getting to know the four main modes (normal, insert, visual, command-line) and mastering basic Vim motion navigation from hjkl to pattern search.

In this episode you will assemble Neovim's true grammar: combining operators (d, c, y, p) with motions and text objects (ci", di(), yap) as well as leveraging marks and the jump list.

In this episode you move to the next level: leveraging registers to store and paste text precisely, recording macros to automate repetitive edits, and mastering search & replace with flags and capture groups.

After mastering text editing within a single file, it is time to manage multiple files at once: understand the difference between buffers, windows, and tabs, master split windows, buffer navigation, and the multi-file editing workflow of a professional engineer.

This is the moment of transition from "user" to "builder": understand the modern configuration directory structure, master the basics of the Lua language, and get to know the Neovim Lua API (vim.opt, vim.g, vim.keymap.set, vim.api) along with Vimscript interoperability through vim.fn and vim.cmd.

Time to build a real config: write lua/config/options.lua to define the editor's behavior and feel, then lua/config/keymaps.lua with custom shortcuts centered around the leader key — the first two pillars of a Neovim that is truly yours.

Make Neovim work on its own: learn autocommands that respond to editor events (auto-save, trim whitespace, yank highlight), create custom commands like :TrimWhitespace with nvim_create_user_command, and tailor behavior per language with filetype detection and modeline.

Close PHASE 2 with the ecosystem foundation: learn why lazy.nvim became the de-facto plugin manager standard, write the bootstrap script in init.lua, organize modular plugin specs in lua/plugins/, and master the :Lazy UI for install, update, clean, and performance profiling.
