My Dream Editor

Oct 13, 2015

Today, let’s talk about editors. Why? Because currently there are more editors than anything else. Microsoft decided to launch an editor, github decided to launch an editor - heck, even facebook suddenly invests into editors. We have closed source ones, open source ones, big full powered IDEs and of course the old school family.

The good thing, I actually like playing with editors. Sometimes I feel like just opening a new tool and test it out. Because of that I discovered SublimeText from NetBeans / PHPStorm. Because of that I also switched from SublimeText to VIM and later back to intellij. I love to constantly improve my workflow and find new ways to get even more productive.

The annoying thing about testing editors is that well, once you hit VIM you are pretty much in a dead end. From then on each and every editor has to have VIM keybindings. If it doesn’t, you can’t use it. Naturally I spent a ton of time with VIM - the best vim emulation out there. SublimeText and Atom just couldn’t cut it. They add a good amount of sugar into the mix, sugar I really like - but their VIM plugins are just not good enough (yet). So I kept going my way with vim, carefully tweaking my good old .vimrc as days come by.

To my big surprise, the editor that won me by storm wasn’t vim and it wasn’t neovim either. It was something that made me drop my beloved .vimrc without hesitation, something I thought I would never even touch - emacs. Yeah, emacs made me drop all other editors in the year 2015. Ridiculous, right? So what’s going on?

Enter spacemacs

spacemacs is an amazing pre-configured emacs made for people like me! VIM users!. It uses the power of evil, the arguably best VIM emulation out there and builds a layer of highly productive keybindings on top. Here’s how it works:

In spacemacs, each command is triggered by the spacebar and follows a very innovative mnemonic. spc and b for example is showing you actions on the current buffer. spc and p executes project commands.

The really cool thing though comes from it’s layer system. spacemacs has a ton of contributed layers that just work. For example without researching anything, I just enabled the react layer and suddenly I had full jsx support, highlighting, linting with eslint and a ton of keybindings! Just like that! Why? Because someone who actually uses react implemented it this way, the way it should be done.

So many strong editors give me a ton plugins and what not without actually knowing the ecosystem of the target language / framework just for the sake of supporting as many things as possible.

And if the plugin is superb, then the base of the editor is usually weak. Look at VIM: We have so many cool plugins but most of them are a big ugly hack in vimscript that works so-so. Emacs on the other hand is hackable in every little corner. It provides a powerful scripting language in form of elisp and has a very active community around it.

I would even argue that most of the layers that ship with spacemacs out of the box are a good amount better than what I hacked together inside my .vimrc.