Vim (a popular extension of vi, short for vi improved) has its own website and documentation.
A ~575-page book on Vim is available on the Web (in .pdf), with errata for the book listed here.
Prof. Norm Matloff (mentioned in Section A.2.1, “General Linux resources”) has An Extremely Quick and Simple Introduction to the Vi Text Editor.
Don't forget about Vim's built-in tutorial, which is best reached by typing vimtutor
at the prompt in a terminal, although you can also get to it by typing :help
while in vi/Vim.
As for books:
Robbins, Arnold. vi Editor Pocket Reference. Sebastopol: O'Reilly, 1998.
Robbins, Arnold, and Linda Lamb. Learning the vi Editor. 6th ed. Sebastopol: O'Reilly, 1998.
Robbins, Arnold, and Elbert Hannah and Linda Lamb. Learning the vi and Vim Editors. 7th ed. Sebastopol: O'Reilly, 2008.
GNU has a web page for Emacs, online Emacs manuals, and An Introduction to Emacs Lisp Programming.
Prof. Norm Matloff (mentioned in Section A.2.1, “General Linux resources”) has a tutorial entitled Emacs: The Software Engineer's ``Swiss Army Knife''.
Don't forget about Emacs's built-in tutorial, which you can find by typing C-h t
while in Emacs.
There's also the Emacs info page at info emacs
.
As for books:
Cameron, Debra. GNU Emacs Pocket Reference. Sebastopol: O'Reilly, 1998.
Cameron, Debra, et al. Learning GNU Emacs. 3rd ed. Sebastopol: O'Reilly, 2005.
Chassell, Robert J. An Introduction to Programming in Emacs Lisp. 2nd ed. Boston: GNU Press, 2004. This book can also be found online at the author's website.