Found out the hard way that usernames with spaces don't work. Anyway...
This is my first crack at zsh. Most useful on debian/ubuntu systems with aptitude. It also includes a fun little easter egg.
updated: 17 Jul 2008
#########################################################################
# #
# 383_Inc's zshrc for ubuntu v1.1 #
# nullum magnum ingenium sine mixtura dementiae fuit #
# --Seneca #
#########################################################################
export PAGER='less'
export EDITOR='vim'
##############
# Prompt #
##############
export PS1='%n@%m:%~ %# '
autoload -U promptinit
promptinit
##############
# Title #
##############
export DEFAULT_TITLE='%n@%m: %~'
export TITLE=$DEFAULT_TITLE
case $TERM in (xterm*|rxvt|screen)
precmd () { print -Pn "\e]0;$TITLE \a" }
;;
esac
function title (){
if [ -z $1 ]; then
export TITLE=$DEFAULT_TITLE
else
export TITLE=$1
fi
}
##############
# Completion #
##############
autoload -Uz compinit
compinit
zstyle ':completion:*:descriptions' format '%U%B%d%b%u'
zstyle ':completion:*:warnings' format '%BSorry, no matches for: %d%b'
zstyle ':completion:*' completer _expand _complete _correct _approximate
zstyle ':completion:*' max-errors 3 numeric
zstyle :compinstall filename '/home/chris/.zshrc'
zstyle ':completion:*' use-cache on
zstyle ':completion:*' cache-path ~/.zsh/cache
setopt correct_all
setopt auto_menu
setopt complete_aliases
#############
# History #
#############
export HISTFILE=~/.zsh_history
export HISTSIZE=1000
export SAVEHIST=$HISTSIZE
setopt hist_ignore_dups
setopt share_history
##############
# Options #
##############
setopt autocd
setopt glob
setopt extendedglob
setopt chase_links
setopt auto_resume
setopt hash_cmds
setopt hash_dirs
setopt hash_list_all
bindkey "\eOH" beginning-of-line
bindkey "\eOF" end-of-line
##############
# Aliases #
##############
# Apt #
alias install='sudo aptitude install'
alias reinstall='sudo aptitude reinstall'
alias remove='uninst && sudo aptitude $UNINSTALL'
alias uninstall='uninst && sudo aptitude $UNINSTALL'
alias purge='uninst && sudo aptitude $UNINSTALL'
alias update='sudo aptitude update'
alias upgrade='sudo aptitude safe-upgrade'
alias full-upgrade='sudo aptitude full-upgrade'
alias reconfigure='sudo dpkg-reconfigure'
alias search='aptitude search'
# File Management #
alias mv='nocorrect mv -i'
alias cp='nocorrect cp -i'
alias mkdir='nocorrect mkdir'
alias ls='ls --color=auto'
alias l='ls -gh --color=auto'
alias la='ls -a --color=auto'
alias rm='rm -i'
alias rf='rm -rf'
alias mcd='nocorrect mkdir $1 && cd $1'
# Directories #
alias music=$HOME/Music
alias videos=$HOME/Videos
alias pictures=$HOME/Pictures
alias desktop=$HOME/Desktop
alias downloads=$HOME/Downloads
# Miscellaneous #
alias untar='extract'
alias c=clear
alias exit='clear && exit'
alias download='wget'
alias dnld='wget'
alias figfonts='ls /usr/share/figlet/*.(flf|tlf)'
alias zshrc='vim $HOME/.zshrc'
alias sources.list='sudo vim /etc/apt/sources.list'
alias conkyrc='vim $HOME/.conkyrc'
# Suffixes #
alias -s com=links
alias -s org=links
alias -s net=links
alias -s php=links
alias -s txt=vim
alias -s list=vim
alias -s lst=vim
##############
# Scripts #
##############
#--------------------#
# Purge on Uninstall #
#--------------------#
uninst () {
echo "Remove Configuration Files [y/n/q]"
read var
if [ $var = "y" ]; then
export UNINSTALL=purge
elif [ $var = "n" ]; then
export UNINSTALL=remove
elif [ $var = "q" ]; then
echo "Bye"
fi
}
#-------------------------#
# Move Files to the Trash #
#-------------------------#
trash() {
if [ -z $1 ]; then
echo "Empty Trash? [y/n]"
read var
if [ $var = y ]; then
sudo rm -rf $HOME/.local/share/Trash/files/*
else
echo "Bye"
fi
elif [ -f $1 ]; then
echo "Move to Trash or Delete [t/d/?]"
read var
if [ $var = t ]; then
mv -rv $1 $HOME/.local/share/Trash/files
elif [ $var = d ]; then
rm -ri $1
elif [ $var = ? ]; then
echo "t to Trash or d to Delete"
else
echo 'The requested file/folder, $1, does not exist'
fi
fi
}
#--------------------------#
# Extract Various Archives #
#--------------------------#
extract() {
if [ -f $1 ]; then
case $1 in
(*.tar.gz | *.tgz) tar -xvzf $1;;
(*.tar.bz2 | *.tbz2) tar -xvjf $1;;
(*.gz) gunzip -v $1;;
(*.bz2) bunzip2 -v $1;;
(*.zip) unzip $1;;
(*.rar) unrar xv $1;;
esac
else
echo 'Can not handle file. Does it exist?'
fi
}
#------------------#
# Rationalise Dots #
#------------------#
rationalise-dot() {
if [[ $LBUFFER = *.. ]]; then
LBUFFER+=/..
else
LBUFFER+=.
fi
}
zle -N rationalise-dot
bindkey . rationalise-dot
##############
# EasterEggs #
##############
littlelamb() {
beep -f 10
if [ $? = 0 ]; then
echo 'Marry Had A Little Lamb'
beep -f 466.2 -l 250 -D 20 -n -f 415.3 -l 250 -D 20 -n -f 370.0 -l 250 -D 20 -n -f 415.3 -l 250 -D 20 -n -f 466.2 -l 250 -r 2 -d 0 -D 20 -n -f 466.2 -l 500 -n -f 10 -l 20
echo 'Little Lamb, Little Lamb'
beep -f 415.3 -l 250 -r 2 -d 0 -D 20 -n -f 415.3 -l 500 -D 20 -n -f 466.2 -l 250 -D 20 -n -f 568.8 -l 250 -D 20 -n -f 568.8 -l 500 -n -f 10 -l 20
echo 'Marry Had A Little Lamb'
beep -f 466.2 -l 250 -D 20 -n -f 415.3 -l 250 -D 20 -n -f 370.0 -l 250 -D 20 -n -f 415.3 -l 250 -D 20 -n -f 466.2 -l 250 -r 2 -d 0 -D 20 -n -f 466.2 -l 250 -n -f 10 -l 20
echo 'Whose Fleece Was White As Snow'
beep -f 415.3 -l 250 -r 3 -D 20 -n -f 466.2 -l 250 -D 20 -n -f 415.3 -l 250 -D 20 -n -f 370.0 -l 500
elif [ $? = '127' ]; then
echo 'Requires beep to be installed. Install now y/n?'
read var
if [ $var = 'y' ]; then
sudo aptitude install beep
littlelamb
elif [ $var = 'n' ]; then
echo 'Bye'
fi
fi
}