Skip to main content

Why I invented my own text editing language for Emacs

Several years ago my hands got tired from extensive use of Emacs. This topic is very well known in the community, so I won’t bother you with yet another rant about key bindings. Instead, I just provide you with the link to my first official Emacs package which fixes this problem for me, my text object editor named objed. For now I just uploaded it to github but if there is interest I will add it to ELPA/MELPA soon.

To fix the Emacs hand strain problem people usually recommend to use the well known Vim emulation evil-mode. I tried it and really loved the concept of text objects and composition of commands. What I didn’t like was that I had to learn another set of key bindings and that I had to rebind keys for packages that follow Emacs conventions. I know there are projects like evil-collection which improve the situation, but still, it’s an endless fight against the nature of Emacs.

Another argument is that evil-mode "takes over" Emacs. It emulates Vim and subsequently doesn’t feel like Emacs anymore. If you are coming from Vim this is what you want, but for someone who designed his keyboard layout with respect to Emacs keybindings, not so much…​ So I started to search for something that aligned more with Emacs conventions.

There are a lots of packages which implement a modal interface or which provide you with composition of commands. But I couldn’t find a package which integrated the power of text objects, modal editing and composition of commands into the default interface.

That’s why I started to work on my own package. I always wanted to learn more about Elisp and Lisp in general, so I expected it to be a lot of fun. And it was…​, but *surprise* it also was far more work than I expected. The result in its current form is far from perfect, but I’m pretty happy that I succeeded in implementing a working package that fulfills my needs. Hopefully it’s useful for others as well.

I will try to publish some tutorials in the future, for now check the README, the commentary section and docstrings for more information. I tried my best to document all the essential features. This package would never been possible without the helpful community around Emacs. Thank you all and share the software!

See you in parendise!

Commments on Reddit