diff --git a/CHANGELOG.md b/CHANGELOG.md
index b3032aa..bee5425 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -24,6 +24,7 @@ All notable changes to this project will be documented in this file.
 - Basics: [Undo tree?](README.md#undo-tree)
 - Commands: [:redir](README.md#redir)
 - Commands: [:normal and :execute](README.md#normal-and-execute)
+- Commands: [:global](README.md#global)
 - Tips: [Saner command-line history](README.md#saner-command-line-history)
 - Tips: [Reload a file on saving](README.md#reload-a-file-on-saving)
 - Tips: [Smarter cursorline](README.md#smarter-cursorline)
diff --git a/README.md b/README.md
index 8680876..db3d193 100644
--- a/README.md
+++ b/README.md
@@ -76,6 +76,7 @@ Twitter](https://twitter.com/_mhinz_). Thanks!
 
 #### [Commands](#commands-1)
 
+- [:global](#global) - Execute a command on all matching lines.
 - [:normal and :execute](#normal-and-execute) - The scripting dream team.
 - [:redir](#redir) - Redirect messages.
 
@@ -1877,7 +1878,26 @@ set complete-=t   " disable searching tags
 
 ## Commands
 
-Useful commands that are good to know.
+Useful commands that are good to know. Use `:h :<command name>` to learn more
+about them, e.g. `:h :global`.
+
+#### :global
+
+Execute a command on all matching lines. E.g. `:global /regexp/ print` will use
+`:print` on all lines that contain "regexp".
+
+Fun fact: You probably all know good old grep, the filter program written by Ken
+Thompson. What does it do? It prints all lines matching a certain regular
+expression! Now guess the short form of `:global /regexp/ print`? That's right!
+It's `:g/re/p`. Ken Thompson was inspired by vi's `:global` when he wrote grep.
+
+Despite its name, `:global` only acts on all lines by default, but it also takes
+a range. Assume you want use `:delete` on all lines from the current line to the
+next blank line (matched by the regular expression `^$`) that contain "foo":
+
+```vim
+:,/^$/g/foo/d
+```
 
 #### :normal and :execute