Life in Emacs (revisited)

Here is a small summary from my journey from vim to using Emacs for (almost) everything. After using ViM for a few years, I wanted to try Emacs. There are 3 different approaches to get into emacs.

  1. Create your config from scratch. This is the hard way !
  2. Use a starter kit. There are numerous: purcell's or more minimalist like SystemCrafters, emacs-bedrock
  3. Use a distribution : Spacemacs Doom emacs are the most popular for evil users

My advice is to start with Doom-Emacs as all the work is done for you ! It also shows what Emacs can do and it's not limited to editing text. I am now building my own configuration based on minimal-emacs but learned a lot after using Doom-Emacs for more than 2 years.

This post is a complete rewrite of an older one. Instead of listing nice packages, I would like to give a taste on how Emacs can change the way you work.

Happy camping in emacs

Emacs really shines as a consistent framework. In other words, the more you use Emacs for various tasks, the more it makes sense. On the other hand, if you start to use other software, it may lose much of its interest. Having said that, I did use only Emacs for org-mode during my PhD…

I use it to manage tasks with org-mode, write code using lsp, move files around with dired, use it like a "second brain" with org-roam, annotate papers with citar and read mail with not-much. With this setup, most of my time is spent inside emacs but drop to the shell from time to time, mostly to use jj. For git users, magit is a superb wrapper aroud git.

If you are okay living in text-only buffers and commit to this approach, digging into Emacs may blow your mind. For example, you can get the results of a grep command into a buffer and editing the buffer will replace the file contents at once ! Listing directory content can also be edited in a buffer, allow to mass rename files. This can of course be done in other file managers, like yazi, a powerful newcomer in this field. But emacs makes it integrated to the rest of your worklow.

What recently blew my mind was a package called embark. What it does looks boring or not really clear from the project description. But, combind with a completion UI like vertico, you can apply "combos" on your actions. Let me give you a single example. My notes are managed with org-roam and tagged according to their content. To created a note listing all files with the tag genetics, I can extract all matching results from the minibuffer into my new file and get their links ! If that seems a bit abstract, I highly recommand taking the time to read Karthinks post about it. It has a lot of examples easy to follow.

Finally, I will not advertise org-mode. Others have done it before much better than I could.

Taking a scroll outside emacs

Can you go too far using Emacs ? Some use it as their window manager. For me, you have to be okay with the "text-only" approach. For example, if you take notes, formatting will not look as nice as using a GUI. On Windows, I struggled to make Doom emacs work. People recommend to use WSL to run Emacs but it's not the more practical way. I chose to drop emacs, use Emacs 30 with native-compilation and a minimal starter kit. Performance is okay, unless for actions involving I/O, like mass-renaming files.

I still use the terminal, with jj and nushell. Emacs has its own shell shell called eshell but got bitten by bad performances in the past. It may need to be revisited though.

Finally, for inspiration, awesome-emacs is a curated list of plugins by the community.

Licensed under CC BY-NC-SA 4.0
Built with Hugo
Theme Stack designed by Jimmy