A curated, language-organized list of tutorials that walk developers through building complete applications from scratch.
iggredible/Learn-Vim
A free, open-source book that teaches Vim and Vimscript by focusing on the most useful parts of the editor.
- Stars
- 15,311
- Forks
- 1,140
- Open issues
- 18
- Last commit
- 2 months ago
What is it?
Learn Vim (the Smart Way) is a structured guide to Vim, aimed at readers who find vimtutor too shallow and the built-in help manual too exhaustive. It covers the everyday editing model, from starting Vim and managing buffers, windows and tabs to grammar, motions, insert mode, the dot command, registers, macros, undo and visual mode.
The later chapters move into search and substitute, the global command, external commands, tags, folds, Git and compiling from inside Vim, plus sessions and multi-file operations. A second part covers customization with vimrc, packages and the runtime path, and a third part introduces Vimscript data types, control flow, variable scopes and functions, ending with a worked plugin example.
The book is written to be read from start to finish, starting with broad concepts and moving to advanced topics. It can be read locally with Docker, and community translations exist in Chinese and Spanish.
Key features
- 01Covers core Vim editing concepts from basics to advanced usage
- 02Includes chapters on macros, registers, search and substitute, and the global command
- 03Explains Vimscript data types, control flow, scopes and functions
- 04Ends with a worked example of writing a Vim plugin
- 05Can be read locally in a browser using Docker
Use cases
- Moving beyond vimtutor to learn Vim efficiently as a beginner
- Refreshing advanced editing techniques such as macros and registers
- Learning Vimscript to write or customize Vim plugins
- Studying Vim as a reference while teaching others the editor
Quick start
- 1
Install Docker
- 2
Build and start the local book server from the repo root
docker compose -f book/docker-compose.yml up --build - 3
Open http://localhost:8080 in your browser
Things to know
- The content is licensed CC BY-NC-SA 4.0, which prohibits commercial use.
In collections
Topics
FAQ
- What is Learn-Vim?
- A free, open-source book that teaches Vim and Vimscript by focusing on the most useful parts of the editor. Learn Vim (the Smart Way) is a structured guide to Vim, aimed at readers who find vimtutor too shallow and the built-in help manual too exhaustive. It covers the everyday editing model, from starting Vim and managing buffers, windows and tabs to grammar, motions, insert mode, the dot command, registers, macros, undo and visual mode.
- Is Learn-Vim free to use? What license does it have?
- Learn-Vim is open source under the Other license. Check the license terms before using it in commercial products.
- Is Learn-Vim still maintained?
- Updated within 6 months. The last commit to Learn-Vim was on Sep 7, 2026.
- What can I use Learn-Vim for?
- Moving beyond vimtutor to learn Vim efficiently as a beginner Refreshing advanced editing techniques such as macros and registers Learning Vimscript to write or customize Vim plugins Studying Vim as a reference while teaching others the editor
- How do I install Learn-Vim?
- Install Docker Build and start the local book server from the repo root: docker compose -f book/docker-compose.yml up --build Open http://localhost:8080 in your browser
- Where can I get Learn-Vim?
- The source code and installation instructions are on GitHub: https://github.com/iggredible/Learn-Vim
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Neovim is a Vim-based text editor refactored for extensibility, with a Lua and RPC API that lets plugins and external UIs drive the editor.
A terminal modal text editor written in Rust, inspired by Kakoune and Neovim, with multiple selections and built-in LSP support.
Vim is an improved, highly configurable version of the classic Vi text editor, designed for fast keyboard-driven editing of code and plain text.
A modal code editor inspired by Vi, built around keystrokes as a text editing language and multiple selections.
A 30-day, step-by-step course that teaches the Python programming language from basics to web apps, APIs and data tools.