My Terminal Setup – Joshua Raichur

My Terminal Setup

Tools and tricks for a more productive terminal experience

Why terminal?

In the age of GUI development tools, why use the terminal?

Developing in the terminal still has some benefits over standard desktop development environments. You can complete complex operations in a few keystrokes, customize the entire editor, and completely eliminate the need to use a mouse while programming. In this article I will share my current terminal setup. I believe that I’ve arrived at a powerful, efficient and enjoyable environment after some experimentation.

iTerm 2

iTerm 2 builds upon the default Terminal application for OS X, adding more features like split pane view, autocomplete, and is more customizable in general.

I use the 14pt Inconsolata-g for Powerline font and a custom color scheme.


I’ve started using Vim as my default text editor, and has enhanced my development experience immensely. You can check out my notes on getting started with Vim.


Switch from bash to the zsh shell for better autocompletion and path expansion, spelling correction, and more.

I use the oh-my-zsh framework along with the Agnoster theme.


Tmux, short for “Terminal MUltipleXer”, allows you to use several panes and windows–each with its own shell session–in one terminal. Tmux also allows you to create sessions, useful for completely separating work environments. You can have separate sessions for your projects, and within each project have different windows and panes. This is a fantastic tool for organizing your windows I never knew I needed.


Homebrew is quite simply the missing package manager for OS X that makes it incredibly easy to install packages. If you don’t have it, go get it. Now.


Autojump makes it easy to navigate through directories by learning from your past cd’s.


Emmet is a huge timesaver when writing HTML and CSS code. It expands short abbreviations into complex code snippets. It has initializers, allows easy nesting and grouping, multiplication, numbering, etc.

Git add and commit alias

Most of the time when I type git add . -A, the command following it is git commit -m "COMMIT MESSAGE HERE".

I use an alias to simplify it:

git config --global '!git add -A && git commit'

Now I type:


Much better.