Mclovin does Emacs
05 Jan 2009 - Singapore
As part of my New Years Resolution to increase my overall productivity and be more disciplined (generally in life), I’ve been experimenting with a couple of text-editors. Tried out vim first because I was quite familiar with it, but it didn’t promise the paradigm-shift that I was expecting to happen in my work-flow.
Enter Emacs
Daniel Fischer’s blog post did quite a bit to pique my curiosity and upon return from my holiday, I bought and watched the awesome Emacs peepcode as well. I’ve been trying to use Emacs continuously for the last couple of days (including at work) and even though I am still stumbling my way a little through the darkness, I am awed by how much power it has.
My likes
- Embedded shell which gives me the power to write and test code with minimal context-switching. I’m using this one currently and it works much better than the default M-x shell.
- Embedded IRB which offers the same functionality. You can even copy-paste a function from your Ruby buffer to a terminal and execute it! How awesome is that.
- Multi-window workflow. Tabs are great, but being able to see two files side-by-side is better IMO.
- Built-in Git, where you can push/pull/branch/commit with the press of a button.
- Full-screen coding (although I’m not able to toggle it occasionally - have to figure this out).
- All these above reasons combine to give me a piece of software I rarely have to switch away from while at work - thus effectively boosting productivity.
My dislikes
- Found it hard to learn/configure in the beginning. Spent at least 3-4 hours trying to get my configuration forked from topfunky right. The peepcode was a great help.
- The different key-combinations are slightly overwhelming, but on the bright-side, unlike Vim I don’t need to switch from command-mode to edit-mode and back during coding.
It’s still early days and who knows, I might still head back to good ol’ TextMate soon. On the other hand, if I can push through the initial pain-barrier, Emacs offers an awesome and powerful cross-platform IDE.