Clojure Development in Spacemacs

I’ve recently been doing some basic Clojure development, and it’s been a huge blast. I’ve played around with it in the past, but never bothered to fully set up a development environment. This time, however, I decided to spend a few evenings perfecting my workflow and becoming familiar with the tools available, focusing on my editor of choice: Spacemacs.
Read more on Clojure Development in Spacemacs…

Take Your Emacs to the Next Level by Writing Custom Packages

I wrote recently about using Emacs as a JavaScript development environment. One of my chief complaints was the inability to easily run JavaScript tests from within Emacs. I practice TDD frequently, and having to context-switch out of the editor I’m using to run tests is a big annoyance for me.

I knew it was possible to do what I wanted from within Emacs, as evidenced by other test runner modes like RSpec-mode. Armed with that knowledge, I decided to go through the process of learning enough Emacs Lisp to make a Mocha test runner. In the process, I learned a lot about developing Emacs packages and ended up with a really useful tool, so I thought I would share some of the things I learned.
Read more on Take Your Emacs to the Next Level by Writing Custom Packages…

Customizing IntelliJ for Emacs Compatibility

Atomic Object has a great tradition of making and customizing tools. It’s a habit I’ve gained and lost several times over my career — keeping tools sharp requires time and effort. Fortunately, one of the best things about becoming an Atom is that all of my colleagues care deeply about software, so it’s easy to find inspiration to start making tools again.

Recently, I’ve been working on a modern Java web app, and I ended up going all-in on IntelliJ 13. It’s a great development environment for mixed language web development (and Android!). The biggest down-side for me is its poor Emacs compatibility out of the box. The pain of hitting keys that don’t work or do something unexpected sent me looking for a cure. As a life-long Emacs user, I just wasn’t willing to down-grade to the Vim plugin, so what started out as key binding tweaks became full-blown plugin development to customize IntelliJ.

My fingers are happy with what IntelliJ can do now, and there’s a clear elisp-style path to add features that I miss. Read more on Customizing IntelliJ for Emacs Compatibility…

My Favorite Emacs Add-Ons

I love Emacs. I’ll take it hands down over vim, Sublime, Atom, and company any day. I thought I would take some time to list some of my favorite bits of Emacs and how I use them in my daily workflow.

1. Magit

Magit is an Emacs interface for git. Beyond that, it’s the best interface for git I have ever used — better than the git CLI or third-party apps like SourceTree. Magit reduces most git commands (and all of their cryptic flags) to a series of one-character shortcuts. It also introduces interactive status and log buffers that are comparable to any other git gui out there (and better than many). The best part is that version control becomes part of my editing workflow and requires no context switching. Overall I find that it massively speeds up and simplifies my git workflow and encourages me to use my VCS to its fullest extent. Read more on My Favorite Emacs Add-Ons…

Emacs or Vim? Get the Best of Both with Evil

I am an avid Emacs enthusiast in a company full of Vim users. In fact so many people I work with like to use Vim that they even created a company wide Vim config for everyone to use. This has presented a problem to me: Emacs or Vim? On the one hand, I absolutely love Emacs and have invested significant time into customizing it to work exactly the way I want. But on the other hand, I want to be on board with the tools everyone I work with is using.

Is the solution here to just accept the fact that Vim is an excellent text editor too, and adopt it for my work? No way!

The Evil Solution

Instead, I decided to just to port Atomic’s Vim config into Emacs and use both editors at the same time. Fortunately for me, someone has already done most of the work for me by creating Evil, the Extensible vi layer for Emacs.

Read more on Emacs or Vim? Get the Best of Both with Evil…

Vi Editing Mode for Bash

Ever find yourself at the Bash prompt, typing out a very long series of arguments or parameters, only to hideously misspell something at the beginning on the line?

If you’re handy with the emacs editor, you already know the answer. You can use the emacs key bindings to go back and efficiently edit your command line. You don’t need to retype it, or tediously use the arrow keys to go back character-by-character.

However, what if you’re not handy with emacs bindings, but vi bindings? What then?

Read more on Vi Editing Mode for Bash…