Hacker News new | ask | show | jobs
by User23 1650 days ago
The official documentation[1] is quite good. An Introduction to Programming in Emacs Lisp[2] is just what it sounds like. It will get you familiar with writing Elisp, using the debugger, and some other basics. At that point, you should be able to navigate the Elisp Reference Manual without too much trouble.

Once you have that foundation, you shouldn't have much trouble scratching whatever itches that arise. The community is thriving so often a web search will return a blog or video explaining how to do exactly what you want. And once you're familiar with it, Elisp is a fairly readable language, so you can learn a lot from looking at the source for other packages to get ideas.

Edit: Sibling comment for Advent of Code is also a solid idea. Arguably Emacs's greatest strength is that it's a fantastic Elisp development environment.

[1] https://www.gnu.org/software/emacs/manual/

[2] https://www.gnu.org/software/emacs/manual/eintr.html

2 comments

i think similarity between Common Lisp and Emacs Lisp should be pointed out more often. if you learn Emacs Lisp you have almost learned Common Lisp too. at least to the point where reading the Common Lisp Hyperspec would be a breeze

i point this out since Common Lisp is a language with huge potential for industrial applications and heavy computations. the utility of Emacs Lisp is non existent beyond emacs. of course, if you use Emacs the program to its full potential then knowing Emacs Lisp is also a huge deal

Emacs Lisp is totally usable as a minimal scripting language outside of the regular Emacs context.

You can compile Emacs without any GUI toolkit support and run it heedlessly as a lisp interpreter. You can even make Emacs packages behave like CLIs with a few lines of code.

of course. emacs itself is written in emacs lisp. it's not just an extension script for it. but it is not the most performant language. depending on the implementation, common lisp can be a beast with unmatched interactive development (in emacs of course)
I know I've seen #2 previously but lost it.

Thank you!