# ezzsh - zshrc # path to your zsh configuration. ZSH="$HOME/.zsh" # export ZSH_THEME="random" # export ZSH_THEME="ezzsh" # name of zsh theme export ZSH_THEME="powerline" # name of zsh theme # Set this to true to use case-sensitive completion CASE_SENSITIVE="false" # bool # Comment this out to disable weekly auto-update checks DISABLE_AUTO_UPDATE="true" # bool # Uncomment following line if you want to disable colors in ls DISABLE_LS_COLORS="false" # bool # Uncomment following line if you want to disable autosetting terminal title. DISABLE_AUTO_TITLE="false" # bool # Uncomment following line if you want disable red dots displayed while waiting for completion DISABLE_COMPLETION_WAITING_DOTS="true" # bool # plugins to load (array) # Example format: plugins=(rails git textmate ruby lighthouse) plugins=(git) # Customize to your needs... source $ZSH/zsh # workaround for broken xfce4 terminal to force $TERM: if [[ "$COLORTERM" == "xfce4-terminal" ]]; then export TERM="xterm-256color" fi # workaround for rxvt if [[ "$COLORTERM" == "rxvt-xpm" ]]; then export TERM="rxvt-unicode-256color" fi # set $OS_TYPE export OS_TYPE="$(uname)" # $ZSH - Path to your zsh installation. export ZSH=$HOME/.zsh/ export PATH=$HOME/bin:/usr/local/bin:/usr/local/sbin:/usr/sbin:/sbin:$PATH # set $EDITOR export EDITOR='vim' # man pages: color export LESS_TERMCAP_mb=$'\E[01;31m' export LESS_TERMCAP_md=$'\E[01;33m' export LESS_TERMCAP_me=$'\E[0m' export LESS_TERMCAP_se=$'\E[0m' export LESS_TERMCAP_so=$'\E[01;44;33m' export LESS_TERMCAP_ue=$'\E[0m' export LESS_TERMCAP_us=$'\E[01;32m' # zsh fix for ssh host completion from ~/.ssh/config [ -f ~/.ssh/config ] && : ${(A)ssh_config_hosts:=${${${${(@M)${(f)"$(<~/.ssh/config)"}:#Host *}#Host }:#*\**}:#*\?*}} # needed to keep backgrounded jobs running when exiting zsh: setopt NO_HUP # homebrew # githup api token, in the format, example: # > export HOMEBREW_GITHUB_API_TOKEN=XXXXX if [[ -e ~/.homebrew-github-api-token ]]; then source ~/.homebrew-github-api-token fi # mosh setup # export MOSH_TITLE_NOPREFIX=1 # jump/mark/unmark/marks stuff (make sure to load the "jump" plugin in plugins=() ) function _completemarks { reply=($(ls $MARKPATH)) } compctl -K _completemarks jump compctl -K _completemarks unmark # force english locales export LC_CTYPE="en_US.UTF-8" export LC_NUMERIC="en_US.UTF-8" export LC_TIME="en_US.UTF-8" export LC_COLLATE="en_US.UTF-8" export LC_MONETARY="en_US.UTF-8" export LC_MESSAGES="en_US.UTF-8" export LC_PAPER="en_US.UTF-8" export LC_NAME="en_US.UTF-8" export LC_ADDRESS="en_US.UTF-8" export LC_TELEPHONE="en_US.UTF-8" export LC_MEASUREMENT="en_US.UTF-8" export LC_IDENTIFICATION="en_US.UTF-8" export LC_ALL="en_US.UTF-8" # set ls options LS_OPTIONS="--color=auto --group-directories-first -F" # Mac OS X specific stuff: if [[ "$OS_TYPE" == "Darwin" ]]; then # preceed path with homebrew stuff: export PATH="/usr/local/sbin:/usr/local/bin:$PATH" # ipython on mac: alias ipython='/Users/armin/git/ipython/bin/ipython' # homebrew verbosity / emoji icon removal: export HOMEBREW_VERBOSE=1 export HOMEBREW_CURL_VERBOSE=1 export HOMEBREW_NO_EMOJI=1 # let's use ls from gnu utils because the bsd ls doesn't know long options: if hash gls; then LS_COMMAND="gls" else LS_COMMAND="ls" fi # homebrew verbose and without annoying emoji icon: export HOMEBREW_VERBOSE=1 export HOMEBREW_CURL_VERBOSE=1 export HOMEBREW_NO_EMOJI=1 # let's use dircolors from gnu utils because the osx version is buggy: alias dircolors="gdircolors" # Linux specific stuff else LS_COMMAND="ls" fi if [[ "$OS_TYPE" == "FreeBSD" ]]; then CLICOLOR=1; export CLICOLOR alias installport="sudo make config-recursive install clean clean-depends" if [[ ! -e /usr/local/bin/gls ]]; then echo "You should install the \"coreutils\" FreeBSD port." else alias ls='gls $LS_OPTIONS' fi if [[ ! -e /usr/local/bin/gdircolors ]]; then echo "You should install the \"coreutils\" FreeBSD port." else alias dircolors='/usr/local/bin/gdircolors' fi fi # enable ls colorization: if [ "$TERM" != "dumb" ]; then eval "$(dircolors "$ZSH"/dircolors)" alias ls="$LS_COMMAND $LS_OPTIONS" fi # set $SHELL: export SHELL="$(which zsh)" # keychain stuff if [[ "$OS_TYPE" == "Linux" ]]; then ssh_cmd="$(which ssh)" function ssh () { echo "$@" >> $HOME/.keychain-args echo "$(date)" > $HOME/.keychain-output # using keychain for gpg made problems, so we only use the id_rsa SSH key here: # keychain id_rsa 44248BA0 keychain id_rsa >> $HOME/.keychain-output 2>&1 [ -z "$HOSTNAME" ] && HOSTNAME=`uname -n` [ -f $HOME/.keychain/$HOSTNAME-sh ] && \ . $HOME/.keychain/$HOSTNAME-sh [ -f $HOME/.keychain/$HOSTNAME-sh-gpg ] && \ . $HOME/.keychain/$HOSTNAME-sh-gpg "$ssh_cmd" "$@" } fi # grep with color alias grep='grep --color=auto' # enable ls colorization: if [ "$TERM" != "dumb" ]; then eval "$(dircolors "$ZSH"/dircolors)" alias ls="$LS_COMMAND $LS_OPTIONS" fi # do not autocorrect sudo commands (fixes "zsh: correct 'vim' to '.vim' [nyae]?") alias sudo='nocorrect sudo' # the more brutal attempt: unsetopt correct{,all}