--- a/acknowledgements.markdown Sun Mar 23 22:50:39 2014 +0000
+++ b/acknowledgements.markdown Mon Jan 02 12:25:31 2017 +0000
@@ -16,29 +16,36 @@
* [chiphogg](https://github.com/chiphogg)
* [ciwchris](https://github.com/ciwchris)
* [cwarden](https://github.com/cwarden)
+* [danderss](https://bitbucket.org/danderss/)
+* [danielra](https://github.com/danielra)
* [dmedvinsky](https://github.com/dmedvinsky)
* [flatcap](https://github.com/flatcap)
* [helixbass](https://bitbucket.org/helixbass)
* [hoelzro](https://github.com/hoelzro)
+* [inside](https://github.com/inside)
+* [jlmuir](https://bitbucket.org/jlmuir/)
* [jrib](https://github.com/jrib)
* [lheiskan](https://github.com/lheiskan)
* [lightningdb](https://github.com/lightningdb)
* [manojkumarm](https://github.com/manojkumarm)
-* [manojkumarm](https://github.com/manojkumarm)
* [markscholtz](https://github.com/markscholtz)
* [marlun](https://github.com/marlun)
+* [martica](https://github.com/martica)
* [mattsacks](https://github.com/mattsacks)
* [Mr-Happy](https://github.com/Mr-Happy)
* [mrgrubb](https://github.com/mrgrubb)
* [NagatoPain](https://github.com/NagatoPain)
* [nathanaelkane](https://github.com/nathanaelkane)
* [nielsbom](https://github.com/nielsbom)
+* [nkalvi](https://github.com/nkalvi)
* [nvie](https://github.com/nvie)
* [Psycojoker](https://github.com/Psycojoker)
+* [rhilenova](https://github.com/rhilenova)
* [riceissa](https://github.com/riceissa)
* [rodnaph](https://github.com/rodnaph)
* [rramsden](https://github.com/rramsden)
* [sedm0784](https://github.com/sedm0784)
+* [semanticart](https://github.com/semanticart)
* [sherrillmix](https://github.com/sherrillmix)
* [tapichu](https://github.com/tapichu)
* [ZyX-I](https://github.com/ZyX-I)
--- a/chapters/01.markdown Sun Mar 23 22:50:39 2014 +0000
+++ b/chapters/01.markdown Mon Jan 02 12:25:31 2017 +0000
@@ -60,7 +60,7 @@
Read `:help echom`.
-Read `:help messages`.
+Read `:help :messages`.
Add a line to your `~/.vimrc` file that displays a friendly ASCII-art cat
(`>^.^<`) whenever you open Vim.
--- a/chapters/11.markdown Sun Mar 23 22:50:39 2014 +0000
+++ b/chapters/11.markdown Mon Jan 02 12:25:31 2017 +0000
@@ -40,7 +40,7 @@
When you typed `<leader>x` in file `bar` Vim couldn't find a mapping that
matched it, so it treated it as two commands: `<leader>` (which does nothing on
-its own) and `x` (the normal command to delete a single character.)
+its own) and `x` (the normal command to delete a single character).
Local Leader
------------
--- a/chapters/15.markdown Sun Mar 23 22:50:39 2014 +0000
+++ b/chapters/15.markdown Mon Jan 02 12:25:31 2017 +0000
@@ -144,7 +144,7 @@
-------------
A good way to keep the multiple ways of creating operator-pending mappings
-straight is the remember the following two rules:
+straight is to remember the following two rules:
* If your operator-pending mapping ends with some text visually selected, Vim
will operate on that text.
--- a/chapters/16.markdown Sun Mar 23 22:50:39 2014 +0000
+++ b/chapters/16.markdown Mon Jan 02 12:25:31 2017 +0000
@@ -161,7 +161,7 @@
Let's look at one more mapping before we move on. Run the following command:
:::vim
- :onoremap ah :<c-u>execute "normal! ?^==\\+\r:nohlsearch\rg_vk0"<cr>
+ :onoremap ah :<c-u>execute "normal! ?^==\\+$\r:nohlsearch\rg_vk0"<cr>
Try it by putting your cursor in a section's text and typing `cah`. This time
Vim will delete not only the heading's text but also the line of equal signs
--- a/chapters/20.markdown Sun Mar 23 22:50:39 2014 +0000
+++ b/chapters/20.markdown Mon Jan 02 12:25:31 2017 +0000
@@ -25,7 +25,7 @@
Vim has many different scopes for variables, but we need to learn a little more
about Vimscript before we can take advantage of the rest. For now, just
-remember that when you see a variable that start with a character and a colon
+remember that when you see a variable that starts with a character and a colon
that it's describing a scoped variable.
Exercises
--- a/chapters/23.markdown Sun Mar 23 22:50:39 2014 +0000
+++ b/chapters/23.markdown Mon Jan 02 12:25:31 2017 +0000
@@ -118,7 +118,7 @@
What did we do here?
* First we set the `textwidth` globally to `80`.
-* The we ran an if statement that checked if `TextwidthIsTooWide()` was truthy.
+* Then we ran an if statement that checked if `TextwidthIsTooWide()` was truthy.
* This wound up not being the case, so the `if`'s body wasn't executed.
Because we never explicitly returned a value, Vim returned `0` from the
--- a/chapters/31.markdown Sun Mar 23 22:50:39 2014 +0000
+++ b/chapters/31.markdown Mon Jan 02 12:25:31 2017 +0000
@@ -184,7 +184,7 @@
Read `:help pattern-overview` to see the kinds of things Vim regexes support.
Stop reading after the character classes.
-Read `:help match`. Try running the `:match Error /\v.../` command a few times
+Read `:help :match`. Try running the `:match Error /\v.../` command a few times
by hand.
Edit your `~/.vimrc` file to add a mapping that will use `match` to highlight
--- a/chapters/34.markdown Sun Mar 23 22:50:39 2014 +0000
+++ b/chapters/34.markdown Mon Jan 02 12:25:31 2017 +0000
@@ -9,11 +9,14 @@
----------------
By yanking the text into the unnamed register we destroy anything that was
-previously in there.
+previously in there. Further, by using a visual selection to yank the text in
+the case that our operator is applied with a motion, we also destroy any record
+of the most recent visual selection.
-This isn't very nice to our users, so let's save the contents of that register
-before we yank and restore it after we've done. Change the code to look like
-this:
+This isn't very nice to our users, so let's avoid using a visual selection in
+that case and also save the contents of the unnamed register before we yank in
+all cases so that we can restore it after we're done. Change the code to look
+like this:
:::vim
nnoremap <leader>g :set operatorfunc=GrepOperator<cr>g@
@@ -25,7 +28,7 @@
if a:type ==# 'v'
normal! `<v`>y
elseif a:type ==# 'char'
- normal! `[v`]y
+ normal! `[y`]
else
return
endif
@@ -38,6 +41,8 @@
We've added two `let` statements at the top and bottom of the function. The
first saves the contents of `@@` into a variable and the second restores it.
+Additionally, we've applied yank with a motion rather than a visual selection in
+the case that our operator is applied with a motion.
Write and source the file. Make sure it works by yanking some text, then
pressing `<leader>giw` to run our operator, then pressing `p` to paste the text
--- a/chapters/41.markdown Sun Mar 23 22:50:39 2014 +0000
+++ b/chapters/41.markdown Mon Jan 02 12:25:31 2017 +0000
@@ -53,7 +53,7 @@
Make sure you can get the first couple examples in the pamphlet working in the
Potion interpreter and by putting them in a `.pn` file. If it seems like the
interpreter isn't working check out [this
-issue](https://github.com/fogus/potion/issues/12) for a possible cause.
+issue](https://github.com/perl11/potion/issues/12) for a possible cause.
-[Potion]: http://fogus.github.com/potion/index.html
+[Potion]: http://perl11.github.com/potion/index.html
[Io]: http://iolanguage.com/
--- a/chapters/42.markdown Sun Mar 23 22:50:39 2014 +0000
+++ b/chapters/42.markdown Mon Jan 02 12:25:31 2017 +0000
@@ -21,7 +21,7 @@
I've been using the word "plugin" to mean "a big ol' hunk of Vimscript that does
a bunch of related stuff". Vim has a more specific meaning of "plugin", which
-is "a file in `~/.vim/plugins/`".
+is "a file in `~/.vim/plugin/`".
Most of the time I'll be using the first definition. I'll try to be clear when
I mean the second.
--- a/introduction.markdown Sun Mar 23 22:50:39 2014 +0000
+++ b/introduction.markdown Mon Jan 02 12:25:31 2017 +0000
@@ -29,12 +29,6 @@
[leanpub]: http://leanpub.org/learnvimscriptthehardway
[paper]: http://bit.ly/lvsthw-paperback
[hard]: http://bit.ly/lvsthw-hardcover
-
-The source code to the book is available [on BitBucket][hg] and [on
-GitHub][git]. If you find any mistakes or feel you could improve it feel free
-to send a pull request, but I'm retaining the copyright on the book, so if
-you're not comfortable with that I understand.
-
[book]: http://learnvimscriptthehardway.stevelosh.com/
[Vim]: http://www.vim.org/
[hg]: http://bitbucket.org/sjl/learnvimscriptthehardway/