Hacking your way around in Emacs
Minimum price
Suggested price

Hacking your way around in Emacs

About the Book

This is an intermediate textbook on Emacs Lisp. If you are an Emacs user, chances are you may want to learn some Emacs Lisp (also called Elisp) – the language the Emacs editor is (mostly) written in. Emacs is an incredibly flexible tool, but using this flexibility requires learning to express oneself in the language Emacs understands.

This is not a beginner's book. That role is best fulfilled by Robert J. Chassell's fantastic (and free!) book entitled An introduction to programming in Emacs Lisp. This book is intended as the next step after reading that one.

After having studied this book, the reader should be able to program Emacs using some common Elisp idioms, know a fair amount of built-in functions and know how to learn about more of them, read parts of Emacs' source code, and consult the Emacs Lisp Reference whenever needed.

This book is focused on practice. While I introduce all needed concepts and explain them, they are all motivated by practical needs and backed up by actual, working code.

In the first chapter (available for free) we develop commands to move the current line up or down. Perhaps the most important takeaways are ways of using Emacs self-documenting nature to find out about existing functions doing things we need and using prefix arguments.

The second chapter is devoted to a whole package allowing the user to reorder words in a sentence (or other fragment of text). There is a lot to learn from it, from how to write a minor mode, to supporting regions in interactive commands, to using overlays, and more.

In the final, third chapter we write some code to count the lines of code in a program. This is an opportunity to present yet another set of techniques, most notably some elements of functional programming, a very brief introduction to regular expressions and the idea of lexical scoping.

About the Author

Marcin Borkowski
Marcin Borkowski

I am a mathematician, a blogger, a technical writer, a programmer, and an Emacs user. Also, a part of a multi-generational family of geeks, a boardgamer, amateur translator, a former teacher and more.

Table of Contents

  • Introduction
  • Moving lines around
    • Introduction
    • The first, naive approach to moving a line down
    • Preserving the column
    • Moving by more lines
    • Making move-line-down work with undo
    • And now for a completely different approach
    • And yet another approach
    • Supporting different prefix arguments
    • Summary
  • Reordering parts of a sentence
    • Introduction
    • Modal versus non-modal design
    • The set-up command
    • Constructing the reordered sentence
    • Bringing the reordered sentence back
    • Fixing a bug with region boundaries inside words
    • Defaulting to the current sentence
    • Introducing a mode
    • A shorter definition of the mode’s keymap
    • Showing the key for a word
    • Generating the list of keys to use
    • Showing the keys for all words in the region
    • Making the word selection easier – handling the keys
    • Dealing with punctuation
    • Avoiding duplication in code
    • Dealing with capitalization
    • Undoing
    • Marking words already copied and making copying faster
    • Implement a more robust undo feature
    • Final touches
    • Package information
    • Summary
  • Counting lines of code
    • Introduction
    • The skeleton of the counting command
    • Counting non-blank lines
    • Let’s get more abstract…
    • Skipping comments
    • Summary
  • Afterword

The Leanpub 60 Day 100% Happiness Guarantee

Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.

You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!

So, there's no reason not to click the Add to Cart button, is there?

See full terms...

80% Royalties. Earn $16 on a $20 book.

We pay 80% royalties. That's not a typo: you earn $16 on a $20 sale. If we sell 5000 non-refunded copies of your book or course for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earnedover $13 millionwriting, publishing and selling on Leanpub.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub