This year I've been improving my Emacs configuration, which got me thinking of which packages are actually worth keeping. There are several that are language-agnostic, so you can use them no matter what you edit in Emacs. These are the ones I will focus on here. To make it simple and not too long, I will focus on four packages you should add to your config :) (there are off course many more interesting ones!).
(for the curious, the config change is mostly about using
use-package and having it documented with
org-mode. You can see the progress in the improvement2021 branch in my configuration repo)
Helm (no, not that helm, Emacs helm) improves navigation in Emacs tremendously! From navigating files better (see screenshot above, this is just C-x C-f), a better menu to navigate open buffers, better M-x execute command menus, searching and more! If you want more functionality, there are tons of extensions, with one of my personal favorites being helm-flyspell (to correct spelling mistakes). There are many others like helm-google, helm-swoop and more!
There are much more that can be said about helm, so I recommend checking the official web pages and seeing what helm can do for you.
Most people use git these days. Not only is it great for code, it is great for any work consisting of text (not binary encoded formats though…). Magit makes using git even greater! It gives nice navigatable menus inside Emacs for using git, nice keyboard shortcuts, and more! While using git with the command line is great, there is NOTHING on this planet comparable to the sheer beauty of being able to do so inside Emacs! The git status equivalent, where I can see changes by navigating with the arrow keys and using the TAB key, currently looks like this in my .emacs repo:
Curious on how the rest of it looks? And the other features? The official Magit web pages have a nice visual tour with tons of screenshots!
org-mode is included in Emacs, but you can download a newer version to get more up to date features and fixes. At its core, org-mode is about editing text. Including source code, verbatim snippets and more is as easy as ever. You can even use org-mode for spreadsheets (with ELisp formulas!), making it a good Excel killer (at least in my view)! You can even use org-agenda to plan your day with meetings and other events.
You may or may not remember that this blog is indeed written using org mode (here with this work in progress article):
Want the more fancy bullet points I have in the screenshot above? Then I can wholeheartedly recommend the org-bullets-mode package! To get the same look and feel as I have, you can use the leuven-theme for even prettier org-mode.
Sometimes feel that the undo/redo-functionality in your editor is limited? That you sometimes want a tree instead of a straight line? undo-tree provides exactly that! This may seem abstract, and you need to try it to fully understand why you need it. You can go back and forth, continue on a trail you did earlier, find out that it was the wrong trail, navigate to a new place in your undo-history, continue from there, go back again, and so on! Might seem confusing, so I recommend trying it out for yourself. There is only so much a screenshot can tell you here. That being said, it is one of my favorite Emacs packages! :)
As I said in the introduction, there are many more packages out there. Do you have any favorites? Feel free to share in the comments! :)