There is lots of IDE vs emacs discussion in this subject.
I have been using primarily (IntelliJ+IdeaVim) and sometimes (Emacs+evil) for the last few years.<p>If I want to write big, complex change in a codebase in Java&#x2F;Scala&#x2F;Python&#x2F;Javascript I would use IntelliJ. Yet IntelliJ doesn&#x27;t work well in many corner cases, like very big codebases, projects in C&#x2F;C++ or languages not officially supported by Jetbrains, cross language projects (even with IJ Ultimate), remote editing or just quickly opening some github repo without spending time on any project setup. And extra emacs packages like magit and org-mode are irreplaceable.<p>Given the emacs flexibility I was able to configure Emacs to implement majority of IntelliJ keybindings. There usually is an equivalent emacs function of package for IntelliJ behavior, e.g. M-x and IntelliJ &quot;Find Action&quot;. Emacs helm works a lot like fuzzy matching in IntelliJ. Sometimes I only implement the &quot;similar&quot; behaviour, e.g. &quot;Show usages&quot; vs &quot;Grep for text at point in current project&quot; in IJ. I will be writing a blog post about it at kozikow.wordpress.com, but if you are interested now now I can send you my .emacs.d.<p>In this setup I can just setup &quot;fast, always works and easy to set up, but not too powerful&quot; code navigation using ctags&#x2F;ggtags, grep&#x2F;ag and projectile in emacs and avoid packages like EDT, eclim-emacs or Jedi that are more powerful, but sometimes require custom per repository setup, or are slow. I usually have both emacs and IJ opened and switch between the two. I have a keybinding in both editors for &quot;open current file in the other editor&quot; (emacsclient + external tool in IJ).<p>So in the spirit of motto of Spacemacs - &quot;The best editor is neither Emacs nor Vim nor IntelliJ, it&#x27;s Emacs and Vim and IntelliJ!&quot;