Zsh
Jump to navigation
Jump to search
Zsh is a very configurable UNIX shell. Here's some tricks to make it do some handy stuff:
Display your TODO file on login
How about showing your TODO file (so you can remember to get shit done) every time you open a new shell?
# print contents of TODO file :) - stolen from jon
if [ -f ~/TODO ]; then
echo ""
echo " ---- TODO ----"
cat TODO
fi
Prompt
How about doing some fancy things with the prompt?
#set a fancier prompt if we're root (the 'root' part becomes red)
#The prompt begins with ^ if the last command was a success, _ if it failed
if [ `whoami` = root ]
then
PROMPT=$'%(?,^,_)%{\e[0;31m%}%n%{\e[0;36m%}@%m%{\e[0;37m%}:: '
else
PROMPT=$'%(?,^,_)%{\e[0;36m%}%n@%m%{\e[0;37m%}:: '
fi
#set the right edge prompt with the pwd
RPROMPT=$'%{\e[0;37m%}[$green%.%{\e[0;37m%}]'
The prompt's format is [^_]username@host:: with some color tags..., the RPROMPT is shown at the right side of the line(it vanishes if the input line gets too long).
For a related prompt hack, see OpenBSD CARP router/firewall zsh shell prompt
Home/End keys
If your home/end keys don't do what you want, try this:
#make home/end work in as many places as possible
case $TERM in
*xterm*|*rxvt|(dt|k|E|a)term)
bindkey "\e[7~" beginning-of-line
bindkey "\e[8~" end-of-line
;;
screen*)
bindkey "\e[1~" beginning-of-line
bindkey "\e[4~" end-of-line
;;
cons25)
bindkey "\e[H" beginning-of-line
bindkey "\e[F" end-of-line
;;
esac
Colors
#Colors
export red=$'%{\e[0;31m%}'
export RED=$'%{\e[1;31m%}'
export green=$'%{\e[0;32m%}'
export GREEN=$'%{\e[1;32m%}'
export blue=$'%{\e[0;34m%}'
export BLUE=$'%{\e[1;34m%}'
export purple=$'%{\e[0;35m%}'
export PURPLE=$'%{\e[1;35m}'
export cyan=$'%{\e[0;36m%}'
export CYAN=$'%{\e[1;36m}'
export WHITE=$'%{\e[1;37m}'
export white=$'%{\e[0;37m}'
export NC=$'%{\e[0m%}'
--Andrew 22:55, 28 September 2006 (EDT)