view zshrc @ 47:9cc72008cf08

enable zsh's fancy autocomplete
author Dirk Olmes <dirk@xanthippe.ping.de>
date Fri, 07 Mar 2014 07:57:27 +0100
parents 9fa883dc39e0
children c509ce04abad
line wrap: on
line source

#
# This is the main zshrc file.
#

if [ -d $HOME/.oh-my-zsh ]; then
    ZSH=$HOME/.oh-my-zsh
    . $HOME/.zsh-env/oh-my-zsh
elif [ -d /var/lib/zsh/oh-my-zsh ]; then
    ZSH=/var/lib/zsh/oh-my-zsh
    . $HOME/.zsh-env/oh-my-zsh
fi

# get rid of some unwanted aliases from the oh-my-zsh env
if [ "`alias | grep 'll='`" != "" ]; then
    unalias ll
fi
if [ "`alias | grep 'l='`" != "" ]; then
    unalias l
fi
if [ "`alias | grep 'lsa='`" != "" ]; then
    unalias lsa
fi

# enable zsh's fancy autocomplete
autoload -U compinit
compinit

# custom functions/aliases that should work on all platforms
cd() { builtin cd "$@"; print -D $PWD; }
ff() { find $2 -print0 | xargs -0 grep $1 }
hgrep() { history | grep $* }
mcd() { mkdir $1; cd $1 }
psg() { ps auxww | grep -v grep | grep -i "$@" }
alias pd=pushd

# no history handling for now ... or find a better way to save history per shell not across all shells
export HISTFILE=

# emulate tcsh's behaviour for forked processes: do not warn, do not kill when shell is closed
setopt nohup
setopt no_check_jobs

# ignore duplicates in history
setopt hist_ignore_all_dups

# get rid of the silly "zsh: sure you want to delete all the files in ..." message
unsetopt normstarsilent

# turn of the "helpful" zsh feature of pushing each directory to the dir stack on cd
unsetopt autopushd

# turn off "helpful" auto correction
unsetopt correct_all

# utility function that is used by various other modules
removeFromPath() 
{
    search_term="$1"
    split_path=(${(s/:/)PATH})
    clean_path=""
    for element in ${split_path}
    do
        if [[ "${element}" =~ "${search_term}" ]]; then
            continue
        fi

        if [ ${#clean_path} -eq 0 ]; then
            clean_path="${element}"
        else
            clean_path="${clean_path}:${element}"
        fi
    done
    echo "${clean_path}"
}

# $HOST can either be just the host name or the FQDN. Standardize on the raw host name
export HOST=`echo $HOST | awk -F '.' '{ print $1 }'`

# include a zshrc per OS type
local os_zshrc=$HOME/.zsh-env/zshrc-$OSTYPE
if [ -f ${os_zshrc} ]; then
    . ${os_zshrc}
fi

# include a zshrc per host
local host_zshrc=$HOME/.zsh-env/zshrc-${HOST}
if [ -r ${host_zshrc} ]; then
    . ${host_zshrc}
fi