My Octopress Blog

I'm no longer young but I still need the money.

Switch From Bash to Zsh

| Comments

I finally came around to switch from bash to zsh. While reading hacker news I found a nice little setup on github: oh-my-zsh

Installation

Installation was quite easy:

$ brew install zsh
$ cd $HOME
$ git clone https://github.com/robbyrussell/oh-my-zsh.git .oh-my-zsh
$ sudo chsh -s /usr/local/bin/zsh yourusernamehere

NOTE: You may need to edit /etc/shells to have /usr/local/bin/zsh.

Configuration

I did very little configuration. All I really did is to choose a nice theme from the many available themes. Anyhow, my .zshrc looks like this:

.zshrc (zshrc) download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# Path to your oh-my-zsh configuration.
ZSH=$HOME/.oh-my-zsh

# Set name of the theme to load.
# Look in ~/.oh-my-zsh/themes/
# Optionally, if you set this to "random", it'll load a random theme each
# time that oh-my-zsh is loaded.
ZSH_THEME="nanotech"

# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"

# Set to this to use case-sensitive completion
# CASE_SENSITIVE="true"

# Comment this out to disable weekly auto-update checks
# DISABLE_AUTO_UPDATE="true"

# Uncomment following line if you want to disable colors in ls
# DISABLE_LS_COLORS="true"

# Uncomment following line if you want to disable autosetting terminal title.
# DISABLE_AUTO_TITLE="true"

# Uncomment following line if you want red dots to be displayed while waiting for completion
# COMPLETION_WAITING_DOTS="true"

# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
plugins=(osx git git-flow fabric groovy grails python)

source $ZSH/oh-my-zsh.sh

# Customize to your needs...

#---------------------------------------------------------------------
# prompt and path
export PATH=~/bin:/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH

#---------------------------------------------------------------------
# env setup
export LANG="de_DE.UTF-8"
# gnuchlog vim plugin
export EMAIL="Stefan Eletzhofer <stefan.eletzhofer@nexiles.de>"
export EDITOR="/Applications/MacVim.app/Contents/MacOS/Vim -g -f "

#---------------------------------------------------------------------
# python
export PYTHONSTARTUP=~/.pyinit

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python2.6
export WORKON_HOME=~/.virtualenvs
export PROJECT_HOME=$HOME/develop
export VIRTUALENV_ROOT=$WORKON_HOME

export JYTHON_HOME=$(brew --prefix jython)/libexec
export PATH=$PATH:$JYTHON_HOME/bin

. /usr/local/bin/virtualenvwrapper.sh

#---------------------------------------------------------------------
# NODE.JS
export NODE_PATH=/usr/local/lib/node
export JS_CMD=node

#---------------------------------------------------------------------
# Ruby RVM
source ~/.rvm/scripts/rvm

#---------------------------------------------------------------------
# GROOVY
export GROOVY_HOME=$(brew --prefix groovy)/libexec

#---------------------------------------------------------------------
# alias
alias ls="gls --color"
alias la="ls -la"
alias ll="ls -l"
alias serve="python -mSimpleHTTPServer"

#---------------------------------------------------------------------
# direnv hook
eval `direnv hook $0`

Here’s how my terminal looks like now. I’m using the solarized colour scheme, and i’m using the nanotech theme:

zsh terminal screenshot

Comments