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)