I remember the sad day that I finally gave up on using Emacs for Java development at work. I had spent hours trying to configure it to properly index all of the files so that I could go to definition easily. My mentor, the old Lisp guy with the insane init.el file who I would pester with questions, told me: “Just use IntelliJ”.

Since then, my coding life has been a lot more IDE centric. I’d step into Emacs occasionally for languages where there wasn’t a specialized IDE, but for those that I spent the bulk of my time on I would defer to the most popular IDEs where I could make use of the mindshare behind the plugins and my colleagues’ expertise (most recently, in VSCode).

I’ve discovered a way to make Emacs a part of my everyday workflow again, despite primarily using IDEs. I use Emacs as a better terminal. Emacs ansi-term provides all of the usual shell functionality, and the graphical version of Emacs provides as nice a UI as my previous favorite iTerm2. tabbar-mode provides a visual reference, and with the addition of a function to quickly open a new ansi-term buffer ala a terminal tab, Emacs provides all of the features I originally used. In addition, I have full access to all of the editing capabilities of Emacs that makes transforming text within and between terminals a breeze. I don’t see a reason to ever go back to a normal terminal now.

Emacs is a better terminal