# # .zshrc is sourced in interactive shells. # It should contain commands to set up aliases, # functions, options, key bindings, etc. # ################## # LOAD FUNCTIONS # ################## ## completions autoload -U compinit compinit ## colors autoload -U colors colors ## renaming autoload zmv alias mmv='noglob zmv -W' ############### # SET OPTIONS # ############### # vi keybindings bindkey -v #allow tab completion in the middle of a word setopt COMPLETE_IN_WORD ## Correct my spelling #setopt CORRECT ## Don't ask me setopt RMSTARSILENT ## Don't require 'cd' #setopt AUTOCD ## Automatically pushd - then I can go to an old dir with cd - (pick no.) setopt AUTOPUSHD export DIRSTACKSIZE=11 # stack size of eleven gives me a list with ten entries ## Autocomplete hosts from .ssh/known_hosts #local _myhosts _myhosts=( ${${${${(f)"$(<$HOME/.ssh/known_hosts)"}:#[0-9]*}%%\ *}%%,*} ) zstyle ':completion:*' hosts $_myhosts HISTSIZE=3000 SAVEHIST=3000 HISTFILE=~/.zsh_history ##################### # SHELL ENVIRONMENT # ##################### ## Ctrl-W stops at a directory ## see http://www.zsh.org/mla/users/1995/msg00088.html WORDCHARS='*?_-.[]~\!#$%^(){}<>|`@#$%^*()+:?' ## set up my prompt export PS1="%{${fg[yellow]}%}[%n@%m] %{${fg[green]}%}%3~ %# %{${fg[default]}%}" #export RPS1="%{${fg[yellow]}%}%T%{${fg[default]}%}" ## color STDERR red #exec 2>>(while read line; do # print '\e[91m'${(q)line}'\e[0m' > /dev/tty; done &) #if [ "`uname`" = "Darwin" ]; then # compctl -f -x 'c[-1,-a][-1,-A] p[2]' -s "`/bin/ls -d1 /Applications/*/*.app /Applications/*.app | sed 's|^.*/\([^/]*\)\.app.*|\\1|;s/ /\\\\ /g'`" -- open # alias run='open -a' #fi ## set list colours export LS_COLORS='no=00:fi=00:di=00;36:ln=01;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35:' ############# # FUNCTIONS # ############# trash() { mv $@ ~/.Trash } pc() { awk "{print \$$1}" } mcd() { mkdir -p "$1" && cd "$1" } calc() { echo "$@" | bc -l -q -i } dont() { echo "OK, I won't!" } settab() { echo -ne "\e]1;$1\a" } settabh() { settab `hostname | cut -d. -f1` } #'" ########### # ALIASES # ########### ## history alias h='history' ## shortcuts alias l='ls' alias l1='ls -1' alias ll='ls -hl' alias la='ls -A' alias lal="ls -Ahl" alias l.='ls -d .[^.]*' alias lsd='ls -ld *(-/DN)' alias lg='ls -l | grep -i' alias cd..='cd ..'; alias ..='cd ..' alias df='df -h' alias du='du -sh' alias mkdir='nocorrect mkdir' alias mv='nocorrect mv' alias cp='nocorrect cp' alias touch='nocorrect touch' alias ln='nocorrect ln' alias -g G="| grep" alias -g g="| grep -i" alias -g L="| less" alias -g H="| head" alias -g ...="../.." alias -g ....="../../.." alias -g .....="../../../.." alias igrep='grep -i' alias rgrep='grep -R' alias rigrep='grep -iR' alias proxy='export http_proxy=http://192.168.1.248:3128;export HTTP_PROXY=$http_proxy;export https_proxy=$http_proxy;export HTTPS_PROXY=$http_proxy;export ftp_proxy=$http_proxy;export FTP_PROXY=$http_proxy;' alias noproxy='export http_proxy='';export HTTP_PROXY=$http_proxy;export https_proxy=$http_proxy;export HTTPS_PROXY=$http_proxy;export ftp_proxy=$http_proxy;export FTP_PROXY=$http_proxy;' alias hosts='vim /etc/hosts' alias graceful='apachectl graceful' alias flushdns='lookupd -flushcache' alias bc='bc -l' alias o.='open .' alias upd='cvs -q upd -dP' alias upd-head='cvs -q upd -dPA' #alias guantanamo-start='env -i /usr/sbin/chroot /jails/guantanamo /usr/local/apache2/bin/httpd -k start' #alias guantanamo-graceful='env -i /usr/sbin/chroot /jails/guantanamo /usr/local/apache2/bin/httpd -k graceful' #alias guantanamo-stop='env -i /usr/sbin/chroot /jails/guantanamo /usr/local/apache2/bin/httpd -k stop' #alias guantanamo-check='chroot /jails/guantanamo /usr/local/apache2/bin/apachectl -t' #alias woomera-start='env -i /usr/sbin/chroot /jails/woomera /usr/local/apache2/bin/httpd -k start' #alias woomera-graceful='env -i /usr/sbin/chroot /jails/woomera /usr/local/apache2/bin/httpd -k graceful' #alias woomera-stop='env -i /usr/sbin/chroot /jails/woomera /usr/local/apache2/bin/httpd -k stop' #alias woomera-check='chroot /jails/woomera /usr/local/apache2/bin/apachectl -t' #alias littlehey-start='env -i /usr/sbin/chroot /jails/littlehey /usr/local/apache2/bin/httpd -k start' #alias littlehey-graceful='env -i /usr/sbin/chroot /jails/littlehey /usr/local/apache2/bin/httpd -k graceful' #alias littlehey-stop='env -i /usr/sbin/chroot /jails/littlehey /usr/local/apache2/bin/httpd -k stop' #alias littlehey-check='chroot /jails/littlehey /usr/local/apache2/bin/apachectl -t' #alias alcatraz-start='env -i /usr/sbin/chroot /jails/alcatraz /usr/local/apache2/bin/httpd -k start' #alias alcatraz-graceful='env -i /usr/sbin/chroot /jails/alcatraz /usr/local/apache2/bin/httpd -k graceful' #alias alcatraz-stop='env -i /usr/sbin/chroot /jails/alcatraz /usr/local/apache2/bin/httpd -k stop' #alias alcatraz-check='chroot /jails/alcatraz /usr/local/apache2/bin/apachectl -t' #alias kerobokan-start='env -i /usr/sbin/chroot /jails/kerobokan /usr/local/apache2/bin/httpd -k start' #alias kerobokan-graceful='env -i /usr/sbin/chroot /jails/kerobokan /usr/local/apache2/bin/httpd -k graceful' #alias kerobokan-stop='env -i /usr/sbin/chroot /jails/kerobokan /usr/local/apache2/bin/httpd -k stop' #alias kerobokan-check='chroot /jails/kerobokan /usr/local/apache2/bin/apachectl -t' #alias changi-start='/etc/init.d/tc-chroot start' #alias changi-stop='/etc/init.d/tc-chroot stop' # If I am on the mac, if [ `uname` = Darwin ]; then alias updatedb='sudo /usr/libexec/locate.updatedb' fi ## common typos #alias sl='ls' #commented out because Jaf's steam train /usr/bin/sl much more fun alias vf='cd' alias xs='cd' alias ks='ls' alias ecgi='echo' ## ensure X11 is running when I gvim, xterm etc alias xterm='open -a X11 && /usr/X11R6/bin/xterm -sb -sl 5000 -rightbar -fg white -bg black -geometry 100x50+40+20' alias gvim='open -a X11 && vim -g' ## on the other hand, don't try and connect to X when I am not gvimming #alias vim='vim -X' #alias x='open -a X11' settabh ## shortcuts to other machines alias murray='ssh weiyi@murray' alias nile='ssh weiyi@nile' alias niles='ssh weiyi@nile-stage' alias orinoco='ssh weiyi@orinoco' alias orinocos='ssh weiyi@orinoco-stage' alias kwai='ssh weiyi@kwai' alias devbox='ssh root@devbox' alias dev5='ssh root@dev5' alias danshui='ssh weiyi@danshui' alias elrond='ssh weiyi@elrond' alias samwise='ssh weiyi@samwise' alias tfine='ssh cinaeco@tfine' alias blackomelette='ssh cinaeco@10.0.1.1' ## shortcuts for development alias migrate='li3 migration db:migrate' alias hr-psych-log='tail -F /jails/kerobokan/usr/local/www-conf/logs/hr-psych-phplog' alias oars-log='tail -F /jails/alcatraz/usr/local/www-conf/logs/oars-phplog' alias acerfoundation-log='tail -F /jails/alcatraz/usr/local/www-conf/logs/acerfoundation-phplog' alias cdo='cd /jails/alcatraz/usr/local/www/oars' alias cda='cd /jails/alcatraz/usr/local/www/acerfoundation' alias cdh='cd /jails/kerobokan/usr/local/www/hr-psych' alias sqlo='mysql -u oars -p' alias sqla='mysql -u acerfoundation -p'