By Developers, For Developers

Historical errata for Practical Vim

PDF PgPaper PgTypeDescriptionFixed onComments
10TYPO

Missing word - Tim Pope’s introduction currently says “The first few tips are lessons the wide applicability of the . command” I think it should probably be something like “lessons ON the wide”

2012-04-25
22ERROR

Through-out the Kindle Ebook version, all of the monospaced characters are capitalized. (See screenshot.)

I’m assuming it’s a formatting issue and the author is actually familiar with the difference between “a” and “A”, for example. ;-)

But for those of us not so advanced, this is getting confusing.

Edit: I included a link to a screenshot, but “To prevent spam, hyperlinks are not allowed in errata”.

2012-04-30We're on it—we hope to release an updated beta on Thursday April 19. \n \nReally sorry for the screw up. Not Drew's fault—it was a production issue. \n
16TYPO

“This tip uses an an analogy to illustrate the Vim way.” - duplication of ‘an’.

2012-04-30
21TYPO

“then dip into Insert mode to change the value by hand: i-18. But it’s quicker just to run 180.” - the first reference should presumably be ‘i-180’ to be consistent with all the further references.

2012-04-30We're changing `0px` to `-180px`, which involves inserting `-18` in front of the zero. The zero is already in the document, so we don't have to type it a second time.
25TYPO

The last heading on the page (“Custom operators work with exiting motions”) contains the word ‘exiting’ which should be ‘existing’.

2012-04-30
75TYPO

“we’ll see how Vim’s tabbed interface can be used to organize a split windows into a collection.”

2012-04-30
?ERROR

I can add to Daniels report that the ePub version also have small caps in the examples.

2012-04-30
23SUGGEST

Tip 3
line 3 of the actions table

s +
It’s not obvious that there are space strokes after and before the plus sign, I might suggest using something as to indicate that

2012-05-09
10TYPO

The text: If we want to search for the word ‘content,’ we could …

The comma should be outside of the quotes as you aren’t searching for “content-comma”, rather just “content”

2012-05-09I agree, but this is house style! Rather than starting an Anglo-American war over English grammar rules, I've rephrased the sentence to remove the comma. It reads better too (which goes to show...).
xviTYPO

page xvi introduction

The text: “then GVim (or MacVim on os x) will provide”

os x -> OS X

2012-04-30
33TYPO

“each pause forms natural a break point” should be “each pause forms a natural break point”

2012-04-30
7ERROR

In the box ‘Two for the price of one’:
Very minor point, but ‘O’ is not equivalent to ‘ko’ if the cursor is on the first line

2012-05-09I want to avoid explaining why this is an edge case. Instead, I've updated the text leading into the table to read: "The table below shows an approximation of some examples."
7SUGGEST

In the box ‘Two for the price of one’
“The table below approximates a handful of these” is an odd usage of approximates. Perhaps replace with: “The table below shows some examples”

2012-04-30
3317TYPO

Missing word: Last paragraph starts with “If I’m Insert mode”, should that be “If I’m in Insert mode”?

2012-04-30
46SUGGEST

From “Get back to Normal mode faster”, the text mentions … “ doesn’t trigger the InsertLeave event, so if we have any autocommands listening for that event, they won’t be invoked when we use to switch back to Normal mode.”

How about suggesting the following workaround which is what I use because is too far to reach, and <C-]> is too awkward:

" Map C-c to Esc so that InsertLeave gets called.
inoremap

All because is a much more comfortable for me, and possibly many others due to C-c being a common “cancel” sequence both in the shell and for many other programs.

2012-05-09As a rule, I'm trying to avoid suggesting custom mappings. Personally, I don't use the `kj` mapping, and I'm already considering removing that recommendation. \n \nIt's a nice suggestion thanks, but I won't be using it.
16TYPO

…so as to acheive a different… Typo ‘achieve’ -> ‘achieve’

2012-04-30
17TYPO

Transposed words… ‘each pause forms natural*a break point’ -> ‘each pause forms a natural break point’.

2012-04-30
25TYPO

‘Custom operators work with exiting motions’ -> typo of existing

2012-04-30
4226TYPO

‘Custom motions work with exiting operators’ -> typo of ‘existing’

2012-04-30
16xviTYPO

OS X is not capitalized in the last paragraph on this page.

2012-04-30
81TYPO

“we’ll just press GO to append a blank line at the
end of the buffer.” - This would add a blank line /before/ the last line in the buffer. I assume this is a typo and should read ‘Go’ instead of ‘GO’.

2012-04-30
207TYPO

start of Ch16: “Ctags is an external program that scans through a codebase and generates an index of keywords.”

The tool is “ctags” not “Ctags” regardless of the word being at the start of the sentence.

There is also a formatting inconsistency as in that chapter, “ctags” is in a mono space font due to it being a tool/command, however elsewhere in the book, things like “grep” and “ack” are not mono space. I would suggest that all tools appear in a mono space font for consistency.

2012-04-30The project homepage disagrees: http://ctags.sourceforge.net/ The page title is "Exuberant Ctags", and the strapline is "A multilanguage implementation of Ctags". I'm inclined to think that the software itself deserves the treatment of a proper noun, while the command name (as typed into the shell) gets the lowercase treatment. See also Perl (the language) and perl (the command), Ruby/ruby, Vim/vim etc. \n \nYou're right about the formatting of "grep" and "ack" being inconsistent elsewhere. I'm on it.
230TYPO

The text “Ack is a grep replacement that is targeted specifically at programmers.”

“ack” is the name of the tool, not “Ack” so it can appear as lowercase despite being the first word in a sentence.

2012-06-19
62SUGGEST

Reading through the book I see that the formatting of keystrokes in the ‘keystrokes’ columns is inconsistent, with key-presses sometimes highlighted, other times not at all. Page 62 is an example where the ex command keystrokes aren’t highlighted, but the normal mode keystrokes are. P. 213 where none are highlighted. (just randomly chosen pages)

2012-05-10My apologies. I switched to marking up Normal mode commands as keystrokes quite late on in the process, and I've yet to update some of the older chapters. I'll try and fix this in time for the next beta release. \n \nJust to be clear: I do want to make Ex commands look different from Normal mode commands. \n \nUPDATE: I've updated all chapters to use consistent markup.
26ERROR

Tables are getting cut off in .mobi versions. It was first obvious to me with Tip 4, Table 1. The table displays the repeat column, but then the following columns are cut off on my kindle.

2012-05-16
3216TYPO

In the introductory text of tip 7 there’s a double ‘an’ in the last sentence

2012-04-30
191TYPO

The vimgrep example command at the bottom of the page has HTML escaped angle brackets:
:vimgrep /&lt;C-r&gt;//
should be:
:vimgrep ///

2012-04-30
114SUGGEST

There appears to be a formatting issue throughout the Kindle ebook when displaying buffer contents. The character that is currently under the cursor always has a large amount of extra padding. For example, in Tip 45, where it displays buffer contents = “foo = 1”, it appears in the reader as " f oo = 1" (Kindle reader app on an Android tablet)

215ERROR

In the table of tag commands
:pop or <C-]> | Reverse through tag history
should be
:pop or | Reverse through tag history

2012-05-07
11ERROR

You say that the `cw` command “changes the word under the cursor”. This is not accurate. As you know, it changes the text from the cursor up to the beginning of the next word. I remember being a vim newb and having it take me a while to break the “change word” nemonic with `cw`.

2012-05-09Changed to: Pressing the `.` command deletes to the end of the current word, and changes it to ‘copy.’
9481TYPO

It says: “we’ll just press GO to append a blank line at the end of the buffer.”, but the “GO” should be “Go” (small letter ‘o’).

2012-04-30
55TYPO

Last paragraph on page 55, second sentence: “The left and right arrow keys move our cursor one character a time in either direction.” … should be … “The and arrow keys move our cursor one character at a time in either direction.”

2012-04-30
53TYPO

There is inconsistent indication of Control+key combinations. In Chapter 5, the “c” in the shortcuts is lower-case (e.g. = on page 53 - but also throughout the entire Chapter 5. It looks like elsewhere in the book a capital “C” is used. e.g. on page 48.

2012-04-30
ixTYPO

This sentence is missing a word where I marked XXX below.

“The first few tips are lessons XXX the wide applicability of the . command.” is missing a word.

2012-04-30
16TYPO

OS X should be capitalized.

2012-04-30
17TYPO

The last paragraph starts “If I’m Insert mode,…”, I think it should be “If I’m in Insert mode,…”.

2012-04-30
xivxivTYPO

Change “sequence” to “sequences” in the first sentence of the fifth paragraph on page xiv, “Some of the longer sequence [sic] of keystrokes can be difficult to follow.”

2012-04-30
xvxvSUGGEST

“visual-star.vim” and “Qargs.vim” should be highlighted, called-out, or quoted in such a way to show that they are filenames.

2012-05-09
xviSUGGEST

Provide a URL to the source code under the “Download the source code” section of xvi.

2012-04-30
codeOK

It appears as though the source code archives, both tgz and zip, unarchive into a directory named “code.” It would be much more helpful if this directory were named “practical_vim_code” or something more explanatory than just “code.”

2012-08-28
34ERROR

Since 1996, Unicode has had 1,114,112 code points and six hexadecimal digits are required to address them all. The Unicode Basic Multilingual Plane has 65,535 code points that can be addressed with four hexadecimal digits.

2012-05-09Thanks for correcting me on this. I've updated my example to reference the Unicode BMP, instead of "Unicode". \n \nAccording to Vim's docs (:help i_CTRL-V_digit), it's possible to enter hexadecimal codes of up to 8 characters, so it should be possible to address the full Unicode set.
82TYPO

In tip 37, the command bfirst! should be bnext!

2012-04-30
xvTYPO

Misspelled word. “indispensible” is a common misspelling of “indispensable”. (Second paragraph in “On the role of Vim script”)

2012-04-30
16TYPO

One ‘an’ too much in this sentence :
“This tip uses an an analogy to illustrate the Vim way.”

2012-04-30
75TYPO

last line before Tip 35:
‘can be used to organize a split windows into a collection.’

disagreement of plural and singular - ‘a’ should be deleted.

2012-04-30
126ERROR

The comments (Excerpted from…) included in the downloaded sourcecode prevent the inclusion of the module. This might be due to some stuff I installed in Pathogen, but the ggO seems to want to make Vim insert a line at the top as a Ruby comment.

I tried to record a macro that does /class/, but it only worked on the one file, not when I applied the macro to all the arguments.

2012-05-14Thanks for reporting this. There's no way that I can remove the copyright notices, so instead I've adapted the example so that it anticipates the comments at the start of the file. \n \nFrancois, you were on the right lines by searching for /class. I would recommend running `gg` first, then searching forwards for the word 'class'. That way, you can be sure that it finds the first match.
47TYPO

“… In the form IF its …” should read. “… In the form OF its …”

2012-05-07
21ERROR

The background-position CSS property can take two values (x and y), but they should not be comma separated.

On page 21 and 22 you have rules such as:
background-position: 0px, 0px

This should be:
background-position: 0px 0px

As a reference please see developer.mozilla.org/en/CSS/background-position

2012-05-09
6SUGGEST

In the table of instructions, the third row reads:
s +
with the s is highlighted in purple.

I was a little confused at first, having tried this:

- pressing “s”, then “+”, then “Esc”

- pressing “s” and then “Esc”
- pressing “s” and “Esc” simultaneously

Then I found out I was supposed to:
- press “s”, press “space”, press “+”, press “space”, press “Esc”

Could you maybe visually indicate the spaces when confusion could arise?

2012-05-09
125ERROR

The text says that pasting from the system clipboard is done on Windows and Linux via Ctrl-v in insert mode, but that actually triggers literal character insertion, see :help i_Ctrl-V. The correct key combination is just a little more complicated.

On Windows, Shift-Insert in insert mode correctly pastes the contents of the system clipboard, but only in GVim. In terminal vim running in a Win32 console window, there is no shortcut for pasting outside of what cmd.exe itself provides, via the menu or QuickEdit option.

On Linux under X11 in both GVim and terminal vim, Shift-Insert inserts the primary selection, not the clipboard. Terminal emulators may offer hotkeys such as Ctrl-Shift-v to paste the system clipboard, but they aren’t necessarily consistent between programs. GVim offers no special hotkey for interacting with the system clipboard, aside from the usual commands that use the + register.

The short version is that the only reliable way to paste from the system clipboard on these platforms is via regular register commands and the + register. Anything else relies on unification of the primary selection and clipboard, or particular environment quirks such as specific terminal emulators.

I don’t have a Mac available for testing, so I can’t speak as to how all of this works there.

My testing was done with vim/GVim 7.3 patchlevel 46 on Win32, and vim/GVim patchlevel 429 (from the Ubuntu 12.04 package repository) on Linux.

2012-06-12Thanks for picking me up on this. Clearly I'm have to research this more thoroughly!
53TYPO

In the text: “to bring up a seach prompt” should be “search prompt”

2012-05-07
20SUGGEST

In the beginning chapter it would be helpful for a complete novice to know how to undo changes. The first example in Tip 1 involves deleting text, but doesn’t show how to restore it for the following example. I didn’t see it, though it’s possible I missed. Best vim book I own, by far. Nice work.

2012-05-15
232SUGGEST

Vim has a subtle behaviour that can cause the :make command to fail. Vim won’t switch to the active directory of the current file, so if you open code/quick-
fix/wakeup/wakeup.h and run make it will fail. Vim is looking for the Makefile in the default directory instead of the current directory. You can always verify this with :pwd and then :cd to the directory containing the Makefile. I believe the workaround for this is to drop ‘set autochdir’ into your vimrc, although that can have side effects.

2012-06-05I don't want to advocate the `autochdir` setting. As a cure, I believe it's worse than the symptoms. \n \nI've updated the example to make it clearer that you have to be in the correct directory before running `:make`
2810ERROR

Hyperlink from :h * —> ’’ on the vim documentation page on patterns should be #star instead of #.

2012-05-15Well spotted, thanks!
76TYPO

The text “One of the few that operates on a file is :write” should be “One of the few that operate on …” (operates -> operate)

2012-05-15
60ERROR

There’s a partial line of extra crud in ex_mode/shopping-list.todo that makes it not match what’s shown in the text. (Same thing applies to ex_mode/practical-vim.html, which has a bunch of boilerplate copyright that makes all of the ranges incorrect in the text.)

2012-05-15Thanks for pointing that out. The 'extra crud' in the shopping-list.todo file should be gone from the next edition. The copyright boilerplate is a separate issue. I'll try to find a solution for that next.
185TYPO

It says:
“and we’ll examine some of the special behavior that’s
available through the replacement field.”
It should be:
“and we’ll examine some of the special behaviors that are
available through the replacement field.”

This is in the summary of Chapter 14.

2012-05-15
126SUGGEST

Another possibility to avoid toggling ‘paste’ that I find myself using more is the :i! Ex command
Somehow typing :i! feels easier on my fingers than using "p and also having to go thru the hit-and-miss of using or * register on linux.

The caveat is that to end the command will also cause the last pasted line to be ignored, so you need to end it with (or .)

2012-06-05Thanks for the suggestion, but I'm not going to use it.
7SUGGEST

The “Two for the price of one” box seems to disrupt the flow of the lesson.
The box should be moved down and placed right before “Make the motion repeatable” or before Tip 4

2012-05-31The sidebars are floating content. In the PDF they always appear at the top of a page, which can disrupt the flow. You can skip them, and come back to read them whenever you want.
277SUGGEST

In A1.1 I think it would helpful to incude the example

:set ignorecase?

as an example of reading the current setting for the option.

Reading the value of an option has been discussed earlier in the book. The appendix is useful as a reference, however, so I think it’s worth including it here again.

2012-05-30I'm surprised that I missed that out. Thanks for bringing it up.
152TYPO

I think the following line (see Execute macro in series, on page 141) should refer to executing a macro in parallel, it seems to be running the macro over a visual selection.

Also it is slightly confusing if it is running the macro in parallel on all the lines at once, how would it get the number incrementing in the right order.

2012-05-30Well spotted, thanks. I've fixed the cross-reference.
55TYPO

In the box On the etymology of vi (and family), second half of first paragraph.
“…entering commands faster then they could be sent…”
Change ‘then’ to ‘than’.

2012-05-30
6OK

Please support uploading images. Much easier to explain.
I am reviewing the book on iPhone so I would simply like to upload screen shots than type out the issue on an iPhone keyboard.

2012-08-28
124TYPO

“then we can then paste it” —> one “then” is sufficient.

2012-05-30
9SUGGEST

At Table 1, row “command sequene”, column “act”: I suggest this should be “qx{make changes}q”.

Rationale: The square brackets (indicating optional?) in the action seem redundant/confusing in conjunction with curly brackets also used in the same example. Curly brackets are already established as “meta comment”, which seems sufficient for this example.

2012-05-30Good suggestion. I don't know why I doubled up on [] and {}.
128TYPO

“that we could to transpose the order” —> delete “to”

2012-05-30
212ERROR

Using :args will also add directories into the argument list (although this may be a consequence of having NERDTree installed in addition to netrw), which causes more error messages to be thrown for directory listings not being modifiable.

2012-05-30Good point. I've changed it to load :args **/*.txt instead.
212ERROR

Oops… read on, and saw that this is discussed in the text. Never mind!

2012-05-30Interrobang!?
124TYPO

The text reads “The mm and ‘m commands make a handy pair.” I think the apostrophe should be a backtick which is consistent with the “Swap two words” tip referenced later.

2012-06-05Well spotted!
12ERROR

In the .mobi and .azw converted version on my kindle, the information / hyperlink icon (as first seen after the word vimtutor in the second paragraph of the introduction)is instead showing up as the large figure showing various vim window/split commands. This only occurs in the latest beta version. This figure seems to be included at every hyperlink to vim help instead of the usual small (i) icon.

2012-06-11Thanks for reporting this. We're looking into it.
128TYPO

The text is as follows: For example, we could change {London} to [London] with the cs}] command, […] Or we could go the other way with the cs}] command.

The command is the same in both places. I think the last command was meant to be cs]}

2012-06-03
132ERROR

Hyperlinks for help references that include a backtick don’t work. e.g. :help `. and :help `^

2012-06-05
203TYPO

“Vim makes this posible” —> “possible”

2012-06-11
66TYPO

elford —> elflord in my environment.

2012-06-11
xviSUGGEST

On page you say “Visual selections are simulated using a gray-ish background”. If I understand the section correctly, you are talking about how you are showing it in the book. If this is the case: They do not have a gray-ish background, but a blue one ;)

2012-06-11Right - the appearance depends on the format and the device. Probably best if I just say 'it look like this:'.
A1.1TYPO

“The focus of this book is on mastering the core functionality of Vim. but some default settings may not be to your taste.”
The dot should be a comma.

The first paragraph of A1.1 sounds very repetitive after the introduction paragraph. I would suggest:
“We can use the :set command to change the defaults. Let’s take […]”

2012-06-11
298TYPO

“The autocmd delcaration” —> “declaration”

2012-06-12
11ERROR

I have a default install of VIM that comes with OSX Lion 10.7. The Vim version is 7.3. At the bottom of this text I’ll post what it says when I type “:ver” When I type “:set his” it doesn’t do anything. When I do a “:h his” it tells me about history not highlighting my search text. After doing some searching and testing “:set hlsearch” turns on highlighting when I search.

VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Jun 24 2011 20:00:09)
Compiled by root@apple.com
Normal version without GUI. Features included (+) or not (-):
-arabic +autocmd -balloon_eval -browse +builtin_terms +byte_offset +cindent -clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments -conceal +cryptv +cscope
+cursorbind +cursorshape +dialog_con +diff +digraphs -dnd -ebcdic -emacs_tags +eval +ex_extra +extra_search -farsi +file_in_path +find_in_path +float +folding -footer +fork() -gettext
-hangul_input +iconv +insert_expand +jumplist -keymap -langmap +libcall +linebreak +lispindent +listcmds +localmap -lua +menu +mksession +modify_fname +mouse -mouseshape -mouse_dec
-mouse_gpm -mouse_jsbterm -mouse_netterm -mouse_sysmouse +mouse_xterm +multi_byte +multi_lang -mzscheme +netbeans_intg -osfiletype +path_extra -perl +persistent_undo +postscript +printer
-profile -python -python3 +quickfix +reltime -rightleft -ruby +scrollbind +signs +smartindent -sniff +startuptime +statusline -sun_workshop +syntax +tag_binary +tag_old_static
-tag_any_white -tcl +terminfo +termresponse +textobjects +title -toolbar +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo +vreplace +wildignore +wildmenu +windows
+writebackup -X11 -xfontset -xim -xsmp -xterm_clipboard -xterm_save
system vimrc file: “$VIM/vimrc”
user vimrc file: “$HOME/.vimrc”
user exrc file: “$HOME/.exrc”
fall-back for $VIM: “/usr/share/vim”
Compilation: gcc -c -I. -D_FORTIFY_SOURCE=0 -Iproto -DHAVE_CONFIG_H -arch i386 -arch x86_64 -g -Os -pipe
Linking: gcc -arch i386 -arch x86_64 -o vim -lncurses

2012-07-29`:set hls` (with an L, not an I) is indeed the correct command to enable search match highlighting.
xiTYPO

missing an “n” in the word “handling” in this phrase of the Acknowledgements :
“for his adept hadling of my unusual formatting requests”

2012-07-29
291TYPO

Unless my vim setting does something stupid I guess you missed a needed \\ here:

p 291
set grepprg=ack\\ —nogroup $*
after nogroup

and here:

p 292
set grepprg=ack\\ —nogroup\\ —column $*
after column

2012-07-29Good catch - thanks!
59TYPO

The paragraph beginning “Vim stands for vi improved” is doubled, albeit not word-for-word.

2012-07-29
889TYPO

Imagine if we were to go ahead and run a substitute command such as :%s//also known as/g, without realizing that our search pattern was too broad.

I think there is a missing a.k.a. I think should be
:%s/a.k.a./also known as/g

2012-07-29That was intentional. If you leave the search field blank, Vim will reuse the most recently used search pattern. I've added a cross-reference to the tip called "Reuse the last search pattern" to clarify this.
313TYPO

The spellfile.vim excerpt at the bottom of the page references the “~/books/practical_vim/jargon.utf-8.add” file, but your explanations uses “~/.books/practical_vim/jargon.utf-8.add” instead (.books, with a dot…)

2012-07-29
59TYPO

redundancy/partly duplicated content:

Vim stands for vi improved. That’s an understatement—I can’t stand to use regular vi! Look up :h vi-differences  for a list of Vim features that are unavailable in vi. Vim’s enhancements are indispensible, but it still owes much to its heritage.

Vim stands for vi improved. That’s an understatement—I can’t stand to use regular vi! Vim’s enhancements are indispensible (see :h vi-differences  for the full list). But its heritage makes it what it is.

2012-07-29
164OK

On p 164 you state “When pasting from a linewise register, the p and P commands put the text below or above the current line. This is more intuitive than the characterwise behavior.” The part on the system clipboard should contain information how to paste every content characterwise.

2012-09-26I don't understand this suggestion.
59TYPO

In “on the etymology of vim”, duplicated text “Vim stands for vi improved…”

2012-08-30
305TYPO

The keystroke for inserting the filename completion has a typo. It should be . Not

2012-08-30
251TYPO

The second command in the sequence on top of p.251 should be :vimgrep, not :vim.

2012-08-30Actually, `:vim` is an abbreviation for `:vimgrep`, so this is not incorrect. But since I've made a habit of using full command names, I've expanded this one to `:vimgrep` as suggested.
275ERROR

In tip 100, the file global/unsorted.css included with the downloadable code is slightly different than the example.
In the example the code is:
html {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}

In the downloaded file the example is:
html { /*

When following along in vim, you get slightly different results due to the comment line.
The command ‘vi{’ selects all the text inside the ‘{’ including the comment in this case. When you run the global sort on the selected lines it sorts the ‘html { /*

border: 0;
font-size: 100%;
font: inherit;
margin: 0;
padding: 0;
vertical-align: baseline;
html { /*

This is true if there are any characters after the { on the first line.

That's strange. The labels should be stripped out before being hosted for readers to download.
1TYPO

I’m reading the epub version. On the first page of Chapter 21 I see “congratultions”.

2012-08-30
89TYPO

It says “code, on page 102 gives an overview of the directory tree”. The sentence looks malformed in the context.

2012-08-30Copy editor corrected this to: "For an overview of the directory tree, refer to this related code, on page 100."
104ERROR

Says “E354: Can’t find file ”Main.js" in path“, should read ”E345: Can’t find file “Main.js” in path"

2012-08-30
105ERROR

Says “:find nav”, but with an “essential.vim” configured installation, “find” is not case insensitive. Should read “:find Nav”, I guess.

2012-08-30I've just double checked this with `essential.vim` as my `vimrc`, and it works as described. That is, when I type `:find nav` then hit the tab key, it expands to `Navigation.js`. I'm going to leave this as is.
111TYPO

Reads ‘“hosts” E212: Can’t open file for writing’, but if the tutorial information is followed, it should read ‘“/etc/hosts” E212: Can’t open file for writing’

2012-08-30
112ERROR

The text references the “sudo user”, for example in “we can tell our external process to operate as the sudo user”. It can be misunderstood as if there exists a user called “sudo” which happen to have root privileges. Technically it should be “root” or “superuser”, or with “sudo privileges.”

2012-08-30
120TYPO

Says “more rapid traversal then moving by a character”, should read “more rapid traversal than moving by a character”.

Might also be worth saying “by one character” instead of “by a character”. A matter of preference.

2012-08-30
144OK

The paragraphs about g; and `. are a bit confusing.

It says that “if we want to jump back to the most recent modification in the document”, which can be understood as the ultimate change (change 0), not the penultimate change (change 1).

It also says that “In most scenarios, jumping to the `. mark has the same effect as the g;”, but g; would take you to the penultimate change, not to `. which is the ultimate change.
If the intention is to jump to the ultimate change using g, instead, then it should be prepended with a high count.

2012-08-30The first time you use g; it takes you to the ultimate change (same as `.) The next time you use g; it takes you to the penultimate change, and each subsequent time you use it, g; takes you to the previous entry in the change list. \n \nWhen I say that "In most scenarios, jumping to the `. mark has the same effect as the g;", I'm referring to the situation where g; has not yet been used. This is the most common scenario, since every time you make a change, the changelist is updated, and the g; and `. commands become equivalent again. \n \nYour suggestion to use g, with a high count is only relevant if you've already used the g; command (and haven't made any changes since). This scenario is less common. I don't think it's worth mentioning.
8459TYPO

The paragraph beginning:

“Vim stands for vi improved. That’s an understatement—I can’t stand to use regular vi! Vim’s enhancements are indispensible (see :h vi-differences  for the full list).”

…seems to have a duplicate (with changes) just below it.

2012-08-30
173ERROR

The link in the foot note seems to be dead, as of 2012-08-21.

2012-08-30
204OK

In the example on how to approximate the < and > operators, it might be useful to say what makes it an approximation and what it does not handle, e.g. a word starting at the beginning of a line.

2012-08-30The extra detail would disrupt the flow. I've already marked it as an approximation, which invites the reader to think about it. I'm leaving this as is.
146TYPO

Remove the extra space between “,” and “1” in the foot note reference.

2012-08-30
214TYPO

Says “Here are a couple ways”, should read “Here are a couple of ways”.

2012-08-30
222SUGGEST

In the source text for search/quoted-strings.txt, apostrophes are being used as quotes, and in the rest of the examples, the quotes are represented as quotes. Although there is a “disclaimer” that the prime symbol is used, it’s still pretty confusing with the mix. Can’t the latter examples also use the prime symbol?

I see what you mean. In the manuscript, I use single-prime marks throughout, but they appear differently in code samples and buffer simulations. I've referred this issue to the typesetter.
234ERROR

There is a table which supposedly shows what each answer means in the substitute confirmation dialog, but it omits ^E and ^Y without mentioning why.

2012-08-30
279SUGGEST

In what way is the “:ll N” command a natural diversion?

2012-08-30Here are a few command pairs: :cnext/:lnext, :cprev/:lprev, :cfirst/:lfirst, :clast/:llast etc. Think of :c as the prefix for the quickfix list, and :l as the prefix for the location list. In the case of `:cc N` the second `c` doesn't stand for a word, it's just a repeat of the prefix. Following that logic produces `:ll N` as the location list equivalent, rather than `:lc N` (which is not a command). \n \nThe pattern is clear if you think about it, and that's what I want the reader to do. The explanation makes for boring reading, and I'm not putting it in the book for that reason.
18SUGGEST

In the ePub version, the documentation icon (the circle with th “i” in it) is displayed much larger than the surrounding text. The PDF has the icon at the same line height as the text, so I assume the ePub is displaying the icon wrongly.

2012-10-31
34ERROR

In tip 19 the keystrokes “R, b” is using a space instead of the Space notation “R,␣b”.

2015-07-01Well spotted!
95ERROR

Last ex command on the page: “:edit %:hM” will open Mailer.js, not Main.js. Perhaps add an extra “” at the end?

2015-07-02Good catch, thanks.
132TYPO

In the table of jumps there is an extra “/” in front of the second command: “//pattern/?pattern…”.

2015-07-02
137TYPO

Missing “to” after “us” in 1st line of 2nd para of tip 58, “allows us create a mark”.

2015-07-02Good catch.
126TYPO

iBooks renders tip 53 in the ePub version with pencil marks in place of backticks.

173TYPO

The last of the buffer contents in table 18 should show the Person class within the Rank module.

2015-07-02Good catch!
262TYPO

In “Don’t Lose the Place”, make! is shown as if run from the command line (“=> $ make!”), but it is run from vim, so should be “=> :make!”).

2015-07-02Well spotted!
32OK

Two for the Price of One: S compound command for ^C (should be equivalent to cc) - vim newbie referring to :help S and trying examples on Mac & Ubuntu

2015-07-01I'm going to leave this one as it is. I can see why you've suggested this correction: :help S does specify that "S is a synonym for cc", but I think that's just one way of thinking about it. These are all synonyms: S, cc, c_, ^C, ^c$. \n \nI chose to describe S as ^C in longhand, and C as c$ in longhand. Given that information, you can extrapolate that S is ^c$ in longhand.
263TYPO

Title of Table 28 missing a space between the words ‘Command’ and ‘for’. Reads as ‘Table 28-Commandsfor Navigating the Quickfix List’.

2015-07-02Good catch!
113OK

In the example box:

{start} e.g. we’re going too slow
WWWW e.g. we’re going too slow
WWW e.g. we’re going too slow

The first motion line is 4 capital W’s - I think these should be lowercased.

2015-07-02You had me going there. I checked the source and sure enough those are lowercase 'w's. Why then, is it appearing as uppercase 'W' in the output? After 5-10 minutes investigating this, I realised that the output is in fact lowercase 'w's and uppercase 'W' where it should be. Maybe this font makes it difficult to distinguish between w/W?
218ERROR

Tip 53 says that typing ?{mark} jumps to the exact position of a given mark. This seems to be wrong: acording to :h mark-motions it should be `{mark}.

I suspect that what's happening here is that the backtick character isn't available for some reason, and question mark character is being used instead. I don't see ?{mark} in the source or the PDF output. In the .epub I'm seeing a pencil icon instead where there should be a backtick. Maybe in .mobi format, the backtick can't be shown and a ? is shown instead? \n \nGoing to have to refer this one to our typesetting guru.
196TYPO

In the second to last paragraph of tip 78, it says “getcmdtype().‘\\’ produces ”/\\" if we’re searching forward and ?\\ if we’re searching backward.".

The two expressions “/\\” and ?\\ are exactly parallel but are formatted differently, the first is quoted and in text typeface, the second is not quoted and in smaller typeface.

2015-07-02
301ERROR

This snippet:

set nocompatible
plugin on

should read

set nocompatible
filetype plugin on

243TYPO

last two lines contain:

h1” and “h2,” but “<h1,” “</h1,” “<h2,” “</h2,”

and should

h1" and “h2”, but “<h1”, “</h1”, “<h2”, “</h2”,

(commas are in wrong places)

2015-07-03The rules regarding how punctuation and quotation marks should be mixed are different in the UK (where I come from) and in the US (where PragProg is based). I would love to make this change, but the house style indicates that periods and commas go inside quotation marks. \n \nThere's nothing I can do about it. \n \nhttp://www.quickanddirtytips.com/education/grammar/quotation-marks-with-periods-and-commas \n \nUPDATE: discussed this with Katie and we've decided to switch from using curly quotes to marking up those strings as inline-code.
13xiTYPO

s/Alex Khan/Alex Kahn

Sorry I misspelled your name Alex!

2015-07-01
88TYPO

:cl[ose] ==> :clo[se]

2015-07-02Good catch!
289ERROR

Down at the bottom of the page in the last fragment:
"
:set spell
:set spellang=fr
"

The second line is actually with 3 ’l’s:
"
:set spelllang=fr
"

On the same page 2 or 3 fragments up the option is correct:
"
:set spelllang=en_us
"

2015-07-02Well spotted!
0SUGGEST

Thanks for this book ! I think it may worth adding some tips about folding ?

2015-07-09In choosing what goes into the book and what gets left out, I've had to draw a line somewhere. With a couple of exceptions, I've avoided discussing features that depend on configuring Vim in a certain way. The behaviour of Vim's folding feature is highly dependent on how you have configured the editor and what filetype you are working with. For that reason, I'm not going to be covering folding in Practical Vim. Sorry! \n
9TYPO

In the .mobi version of the book, Tip 4 (Act, Repeat, Reverse) Table 1 (Repeatable Actions and How to Reverse Them) has only 3 columns: Intent, Act, Repeat. The “Reverse” column is not visible. I could not find a way to enlarge/zoom/scroll to see it. I only figured out it was missing because the text kept mentioning Reverse, then I read the title of the table.

82SUGGEST

re: tip 82, David Bürgin emailed to point out that

:%s///gn

can be shortened to

:%~gn

This looks very strange but apparently it is legal! As is “:%sgn”, with
slightly different results.

I’m telling you this because you have a paragraph in tip 82 explicitly
warning not to omit any of the “/” characters. As it turns out, this
isn’t strictly true.

2015-07-09
289TYPO

Under the topic “Obtain Spell Files for Other Languages” there is a listing with:
➾ :set spell
➾ :set spellang=fr
In the word spelllang the third L is missing.

2015-07-02good catch!
156TYPO

At the very end of the chapter, the text mentions ‘autocommand’. Given what was previously discussed in this chapter, it should be ‘autoindent’.

2015-07-02
88TYPO

in the table under closing Windows

:cl[ose] should read :clo[se]

2015-07-02Good catch!
1ERROR

Help links are all broken (h: links)

An error has been encountered in accessing this page.

1. Server: vimdoc.sourceforge.net
2. URL path: /htmldoc/editing.html#:argdo
3. Error notes: NONE
4. Error type: 404
5. Request method: GET
6. Request query string: NONE
7. Time: 2013-11-30 20:41:30 UTC (1385844090)

Reporting this problem: The problem you have encountered is with a project web site hosted by SourceForge.net. This issue should be reported to the SourceForge.net-hosted project (not to SourceForge.net).

If this is a severe or recurring/persistent problem, please do one of the following, and provide the error text (numbered 1 through 7, above):

Contact the project via their designated support resources.
Contact the project administrators of this project via email (see the upper right-hand corner of the Project Summary page for their usernames) at user-name@users.sourceforge.net
If you are a maintainer of this web content, please refer to the Site Documentation regarding web services for further assistance.

NOTE: As of 2008-10-23 directory index display has been disabled by default. This option may be re-enabled by the project by placing a file with the name “.htaccess” with this line:

Options +Indexes

2015-07-14I've updated all (200+) help links so that they now point to: http://vimhelp.appspot.com/ instead of sourceforge. This has the added bonus of being up to date, whereas the sourceforge docs hadn't been updated since 2010.
59TYPO

In the table, you show “R, b”, but you really should show that a space needs to be input using your convention of the ␣ to indicate the spacebar.

2015-07-06
112TYPO

(the page # at the top of the PDF page is 112, but Preview.app says its page 131)

I re-downloaded several of my PDFs, have two versions of P1.1 now (old and just-downloaded). Looking at the specified page, which is “Tip 48”, in the middle of the page, there’s a graphic in the old copy, of the text “prev current next” showing b/w/e commands moving through the text. In the same place on the just-downloaded copy, I get only a tiny box with a red “X” (meaning missing graphic?). I’ve re-re-downloaded it ten minutes ago, and get the same thing.

The other odd thing is that the pages at the end, just after the index, that show ads for your other books - a number of the individual blurbs are missing, e.g. a page is titled “Seven Databases, Seven Languages”, and has the text “There’s so much new to learn with the latest crop of NoSQL databases. And instead of learning a language a year, how about seven?” and NOTHING ELSE, no cover pic or associated text for the book itself. Looks rather odd, having an almost blank page that doesn’t show the book.

112TYPO

Missing image for matrix of word-wise motions

Which book format? \n \nI'm seeing the image in both PDF and .epub documents. I don't have the .mobi to hand right now. \n \nThe image file is called wordmotions.pdf.
allERROR

The Kindle book does not have page numbers, so am unable to make use of the Erratum.
I am using Kindle 1.10.8 last updated 4/13/2014, on Windows 7.

xiiTYPO

In the last sentence of the first paragraph it says:
“Thank you to both for sharpening the saw…”

The “to” needs to be corrected to “two” as it’s referring to Tim Pope and Kana Natsuno.

2015-07-02Katie says: \n \nIt is fine as written! "Two" would make it incorrect (and confusing). However, if you'd like to ensure others don't get tripped up by this construction, we could change the sentence to: \n \n"I want to thank both of you for sharpening the saw..." \n \nOr take out the "to" entirely: \n \n"Thank you both for sharpening the saw..." \n \nI'm dropping the "to".
112ERROR

After “This matrix of word-wise motions is illustrated here:
” I see a red ‘x’ symbol rather than the illustration. My guess is that it indicates a missing image.

124ERROR

In table 13 on page 124 the author describes the aw command as acting on a word plus one space. However, this commands acts on the word plus all the whitespace until the next word. So, it could be one space if there is only one, but it will be more if there are more. Same thing for the other commands: as and ap.

2015-07-02Changed: "Current word plus one space" to "Current word plus space(s)" \n \nAlso changed this para: \n \n> The iw text object interacts with everything from the first to the last character of the current word. The aw text object does the same, but it extends the range to include a whitespace character after or before the word, if one is present. \n \nto say: \n \n> The iw text object interacts with everything from the first to the last character of the current word. The aw text object does the same, but it extends the range to include any whitespace characters after or before the word, if whitespace is present.
78OK

“The % symbol indicates which of the buffers is visible in the current window”.

The % symbol indicates which is the current active buffer, while the letter a tells you which buffers are shoen in any of the windows. For example if you have a split, then you can have two a’s, but only one % symbol in the output of ls.

I don't see any problem with the phrase: "The % symbol indicates which of the buffers is visible in the current window". \n \nTo take your example: "if you have a split, then you can have two a's, but only one % symbol in the output of ls". If your workspace is divided into two split windows, then yes, two different buffers can be active at the same time and in that case you'll see 'a' twice. But only one of those split windows is the *current window*, therefore only one of the buffers can be visible in that window. The % symbol indicates which of the buffers is visible in the current window. \n \nIt's fine.
112ERROR

A figure is missing on this page below the text, “This matrix of word-wise motions is illustrated here:”.
Instead of the figure, a little red cross in a square is displayed below the above text.

20TYPO

In second last line, it should be cW instead of cw.

2015-07-01
153TYPO

The results of the example are wrong in section “Pasting Line-Wise Regions”.

yap

Keystrokes

Buffer Contents

Will result in:

gP

Keystrokes

Buffer Contents

Keystrokes

Buffer Contents

2015-07-09The problem here is that this example depends on there being blank lines (which delimit a 'paragraph'). I wonder if the blank lines were stripped out by one of the editors who reviewed the manuscript, perhaps not realising that the blank lines were in fact significant? I don't like this example very much, so I'm going to try and find a better example to use here. (If I do come up with an alternative, it too will have to contain significant blank lines!) \n \nFor the time being, I've put the blank lines back in. I'm not going to mark this as fixed yet, because I want to return to this one later.
131TYPO

“This matrix of word-wise motions is illustrated here:”

And then there is a picture of a red x. It looks like there’s a missing picture?

45TYPO

“Table 5—Normal Operator in Visual Mode” should be renamed. Visual mode is not used here!

2015-07-06Renamed to: "Uppercasing in Normal Mode"
25TYPO

Commentary plugin now uses gc{motion} (mnemonic “go comment”) instead of \\\\{motion}

2015-07-06Fixed
19ERROR

Command “daw” only deletes the whitespace before the word if there is no whitespace after the work. I had a space in the end of the line and the trick did not work for me.

0ERROR

Kindle Loc 607, “Two for the Price of One”

S is not equivalent to ^C, as reported by another reader in a previous errata.

To see the difference, try with an indented line.

S will delete the line and place the cursor at the beginning of the line.
C will delete the line and place the cursor where the previous indentation was (as goes to the first non-blank character of the line)

48ERROR

In the first three lines of the page letters of ordinary words are highlighted in gray instead of the vim commands

10TYPO

Version: P1.1 (January 2016) Safari Books Online Chapter 10 TRANSPOSING CHARACTERS table F⍽ should be f⍽

10TYPO

Version: P1.1 (January 2016) Safari Books Online Chapter 10 TRANSPOSING CHARACTERS table F⍽ should be f⍽

70ERROR

From paragraph:
“Note that when we press in the command-line window, the command is executed in the context of the active window: that is, the window that was
active before the command-line window was summoned. Vim doesn’t indicate
which is the active window when the command-line window is open, so pay
attention if you’re using split windows!”

The active window is in fact the “command-line” window. After pressing the command is not executed in the active window (which is the command line window) but in the alternate window, which is the window from the command line window has been started. Just give command :ls while being in the command line window to see which window is active/alternate/hidden…

98TYPO

“code/file/mvc”

should be

“code/files/mvc”

Categories: