Mclovin does Emacs

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.

6 Comments

I tried learning emacs a few months (during a slow week at work). Forced myself to use it for an entire week. I was getting somewhere but I didn’t like some things. I missed TM’s project drawer. I figured out something similar for emacs but it was fucking ugly!

I personally think Emacs is a must for REPL-heavy languages – Lisp/Clojure & Haskell where everything is a valid expression (no statements) and Emacs has deep integration with the REPL. TextMate leaves you wanting for more in these instances. Though Python also has an interactive shell, I mostly just use it to test one-liners and then paste that code back into the editor.

That said I think a major version upgrade is long due for TM. Hopefully they’ll add support for multiple windows in the next major version.

Yeah I miss the project drawer too 🙂 But I’m using some text-mate bindings to simplify file-finding, so with my emacs config (stolen from topfunky), I can do ⌘-T to find a file within a project and Shift-⌘-T to find a symbol within a file.

I’m enjoying the switch to TextMate. The biggest thing for me is being able to easily get to any file whether in the current project, a recent project, or an open tab/buffer. Further customization only enhances the experience.

About

I’m Arun Thampi, a Ruby developer at Wego, the kickass travel meta-search engine based in Singapore. We’re great believers in the power of open source, and this is my personal chronicle of stuff that I either work on or am impressed and excited by.

My open source projects are hosted by the great guys at GitHub, and my personal blog is here.

P.S. I’m also a big fan of Seth Rogen and his movies (that would explain the address of this blog)