Daniel Strunk

Emacs

I’m learning Emacs. There, I said it. After being a Vim user for about a year and a half, I’m going to try out the dark side. Here are some of the resources I am using to get my editor setup so it’s not so much “oh my god I don’t know how to exit out of this program” and more “okay, evil mode will save me if I get too in the deep end, but I’m giving this a shot”.

  • How to Use Emacs, an Excellent Clojure Editor. Great resource that walks you through setting up your editor to resemble theirs. Borrow code, omit other parts, whatever. Fun note: Emacs is technically a Lisp interpreter, with all of its editing functionality written in its own Lisp dialect, Emacs Lisp. Perhaps this is why it’s intriguing to Clojurists as an editor…
  • Magit. Billed as “a git porcelain inside Emacs”. Comparing diffs is easy, and Magit has an interface for staging patches that is better than git’s own (self-proclaimed).
  • Helm. Helm is a completion engine that matches anywhere in a name, instead of just the beginning (similar to CtrlP for us Vim users). Emacs ships with a default similar package called Ido as of version 22, but many users prefer helm. Research both and see which one you like.
  • Evil-surround. So I don’t go completely crazy, evil surround is there to ease my transition. I heavily use surround.vim by tpope, and evil-surround mimics that functionality.
  • Evil-args. Another package to ease me into the water, evil args sets up motions and text objects similar to how Vim views method arguments.
  • Sensible Defaults. Harry Schwartz, of thoughtbot ilk, while probably the only Emacs user in the thoughtbot company, follows thoughtbot’s standards of goodwill towards the open source community. He’s open sourced sensible defaults for Emacs which make the user more comfortable with this new and wonderous and frightening editor.

Miscellany

* I’ve been a pretty heavy Vim user for the last year and a half or so. Using Vim and Tmux (or a similar terminal multiplexer, e.g. screen), it’s possible to achieve a very fast workflow with a good testing feedback loop necessary for TDD. By working alongside the videos provided by the good folks over at Upcase, my editor has become home, a place where I feel comfortable making changes and seeing my results near-instantly. Check Upcase out today to level up your TDD, Vim, Git and Rails skills.

** The Vim and Emacs camps are largely divided on which is the best editor. Vim users joke that Emacs is a great operating system, lacking only a decent editor. Emacs users jest that Vim has two modes: “beep repetedly” and “break everything”. As two of the oldest continuously updated programs, it’s understandable why each editor has its zealots.

*** This post was written in Vim. Whoops, maybe next time :)