From installation through configuring fish with its completions, functions and prompt, Neovim motions, Lua config, LSP and plugins, tmux sessions and copy mode, and finally the Lua language itself. Forty lessons that take you to the point where the three work as one environment you can carry around in your dotfiles, and where you can write whatever is missing in Lua yourself. Every command and its output was produced by actually running it.
The 40 lessons are grouped into seven chapters. Working through them in order is the best way, but you are welcome to dip into whatever interests you. Note: config files and key bindings cannot be exercised inside the browser, so install fish, Neovim and tmux and follow along in your own terminal. Chapter 7 (lessons 31–40) is an advanced chapter on the Lua language itself, which underpins the config you build up to lesson 30.
You dispose of the POSIX-incompatibility worry by measuring it, then cover the foundations: config load order, variables and scope, completions and history. By the end, the suggestion is on screen before you finish typing.
You build the parts you touch daily with your own hands: abbreviations, functions, control flow, the prompt and plugins. Finally, fzf and zoxide make moving between directories and finding files noticeably faster.
You learn the grammar — motions and text objects — then automate editing with registers, macros and search-and-replace. This chapter gets plain Neovim into your fingers before a single plugin goes in.
You write your config in Lua and layer on lazy.nvim, Treesitter, LSP, completion and a fuzzy finder. Git integration and a formatter finish the setup off for real work.
You clear up the compatibility problems that only appear under fish, and inspect your config with :checkhealth and start-up timing. Then straight into tmux: sessions, windows, panes and .tmux.conf.
You sort out copy mode and the clipboard, and make key bindings and colours consistent across all three tools. Finally you collect it all into dotfiles so you can recreate the same environment on a new machine.
Up to lesson 30 you used Lua as a set of recipes. Now you'll revisit it as a language. You'll cover tables, closures, and modules, then vim.api, autocmds, and async work, and finish by writing a small plugin of your own and making your config crash-proof.
Once you have finished all 40 lessons, take on the tool you will use every day in this environment with Git & GitHub, or move to the server side with Linux. Membership unlocks every course.