Users can use text editors for so many different purposes, which might range from simply writing letters to do some advance programming. Some years ago, I switched from Vim to GNU Emacs (Emacs) in order to boost my productivity writing scientific articles. On that time, it seemed that Emacs provided better support to handle LaTeX documents (bibliography or reference citations, on the fly spell checking, different font sizes depending on the section heading, etc.) Deliberately, I began to adopt it into my other main activity: programming. Unfortunately, I did not find it as impressive as for writing articles. I forced myself to learn some Emacs tricks, keyboard shortcuts, and installing different modes to allow better experiences when programming.
However, I had never had a systematic approach to learn Emacs. It was precisely for that I decided to read the book Learning GNU Emacs, 3rd edition.
The book explains the principles behind Emacs in a easy and clear manner. The chapters are concise and to the point. Topics are usually summarized with a table of keyboard shortcuts—a useful help in the Emacs world. I briefly highlight what I consider the most interesting concepts described in the book.
When editing, it is handy to know about the kill ring (Chapter 2). This storage area allows to paste any text that has been deleted or copied.
Collaborative paper-writing might find you opening files with different line lengths. Emacs has a fill-mode (Chapter 2) to set up the column width and automatically reformat paragraphs according to that.
Emacs has a search mode capable to ignore quotes, punctuation symbols, and line breaks (Chapter 3). More interestingly, recursive editing allows to pause the current task, perform some editing, and then resume it. This feature turns out to be quite useful when, for instance, performing a search and replace activity.
Grasping the concepts of buffers, windows, and frames makes a difference when setting up a productive layout (Chapter 4).
It is no longer necessary to open a terminal to handle files (Chapter 5). Emacs has support for shell commands which smartly treats and organizes the produced outputs.
One of the most interesting topics in the book are related to write macros (Chapter 6) and programs for Emacs (Chapter 7). These chapters give a feeling regarding how extensible Emacs is.
The book has chapters which are a bit out-of-date and might not be of great interest nowadays. For instance, how to write ASCII articles (Chapter 7) and HTML code (Chapter 8) as well as handling CVS version control systems (Chapter 12). I believe that some of those chapters respond to the philosophy of you can do everything within Emacs, which I do not share.
All in all, the book is of great help to systematically learn Emacs. It is of easy reading and, while not all the chapters are interesting, it is worth reading if you wish to raise your experience (and productivity) with the editor.