Learning the vi Editor, Sixth Edition by Linda Lamb and Arnold Robbins Unconfirmed error reports are from readers. They have not yet been approved or disproved by the author or editor and represent solely the opinion of the reader. This page was updated April 18, 2008. Here's a key to the markup: [page-number]: serious technical mistake {page-number}: minor technical mistake : important language/formatting problem (page-number): language change or minor formatting problem ?page-number?: reader question or request for clarification UNCONFIRMED errors and comments from readers: {9} Error: Says ZZ is the same as :wq! but actually ZZ is the same as :x {32} 2nd paragraph; I previously queried the use of the spacebar as a movement command in "Learning the vi Editor 6E", because I couldn't find any explanation of that usage. In fact another O'Reilly book clears up the mystery. "UNIX in a Nutshell 3E" lists the spacebar as a vi movement command on page 324 under "Movement Commands - Character". This is the explanation that I think is missing from "Learning the vi Editor 6E". {37} Error: Says ^E scrolls the screen up/back one line and ^Y scrolls down/forward one line, but actually the reverse is true. Think of ^E as End of page, which is where the effect is. (51) l.5 ; for: program). read: program.) {52} Suggestion: The penultimate paragraph says "vi also allows you to place yanks (copied text) in buffers identified by letters." I think it should say "vi also allows you to place both deletes and yanks..." This point is not made until p. 54. (53) ll.13-14 ; for: contents of the next buffer is read: contents of the next buffer are {54} Suggestion: The section on mark should illustrate the technique of deleting and yanking with mark so you don't have to count lines. For example: mx ... (then position to the line through which you want to delete) d'x mx ... (then position to the line through which you want to yank) y'x (62) search patterns at bottom of page; to my eye, two different fonts are used for the slashes in these three search patterns, one in which / is thinner and less steep than the other just one font should be used {89} Item 13; My erratum is a comment on your erratum to this item, published on this site. While your published erratum will correct the original error in the book, it is more complicated than it needs to be. Using "" to represent a space, your suggested correction to the first command of this item is: :%s/\(.*[^][^]*\)*$/\1/ This can be simplified to just: :%s/\(.*[^]\)*$/\1/ Because of the "greediness" of the subexpression ".*" (as described in Chapter 4 of your text "Mastering Regular Expressions"), the following "[^]" will match with the rightmost non-space character before the trailing spaces. This is the desired effect. I tried this out with vi on a Solaris 2.6 system, and it worked. Similarly, the expression to capture all of the text on the line, exclusive of the trailing spaces, can be simplified to: \(.*[^]\) After the "greedy" subexpression ".*" has matched with the entire line, the regex engine then "backs up" only as far as the rightmost non-space character to find a match for "[^]". (118) halfway down ; insert comma after PAGE DOWN {118} bottom two lines; line -2 PAGE should be PAGE UP line -1 PAGE should be PAGE DOWN (153) Top; 'Table 8-9: Feature Summary Chart (continued)' is blank, suggesting features are unavailable in all editors. (167) para.1 ; should be "This makes it easy" (180) line 1 ; should be "either the u or the ^R command" (187) Table 10-13 ; should be "A4" (190) last but one paragraph; "Artistic License" is mistyped as "Artisitc ..." (202) para.4 ; should be semicolon after "file" (206) last but one line; "[ESC] acts likes [RETURN]" should probably be "[ESC] acts like [RETURN]" (211) para.5 ; as p.180 l.1 (233) para.6 ; should be colon after "things become different" (246) line -5 ; for: "as appropriate it" read: "as is appropriate" ??? (247) line 1 ; should be "either the u or the ^X u command" {251} para 2 ; "command" in Courier should be in Courier italic {270} Error: m rather than ma is a sufficient abbreviation for mark. (293) taglength ; should be: affect tags picked up from the cursor: That is, "effect" should be "affect" comma should be colon (293) tags; should be: space-separated (295) first problem ; should be :q. [309] at sign (@) I don't understand the sortas= Nor does this seem to correspond to pp.231-2. (309) "Bad termpcap entry" message ; should be "termcap"