view zshrc @ 12:13e0030ddaad

ignore duplicate history entries
author Dirk Olmes <dirk@xanthippe.ping.de>
date Tue, 06 Dec 2011 15:43:46 +0100
parents 6c4ab833e66d
children f6fdf0fe99c3
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
unalias l
unalias lsa

# custom function 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 "$@" }

# 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

setopt hist_ignore_all_dups

# $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 }'`

# 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}"
}

# 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