fancy-ctrl-z () {
  emulate -LR zsh
  if [[ $#BUFFER -eq 0 ]]; then
    [[ -n $(jobs -s) ]] && bg
    zle redisplay
  else
    zle push-input
  fi
}
zle -N fancy-ctrl-z
bindkey '^Z' fancy-ctrl-z

function fancy-ctrl-d() {
  zle || exit 0
  [[ -n $BUFFER ]] && return
  typeset -g precmd_functions=(fancy-ctrl-d)
  zle accept-line
}
zle -N fancy-ctrl-d
bindkey '^D' fancy-ctrl-d
setopt ignore_eof

# word navigation for urxvt
bindkey -e
bindkey ';5C' emacs-forward-word
bindkey ';5D' emacs-backward-word
bindkey '^[[1;5C' emacs-forward-word
bindkey '^[[1;5D' emacs-backward-word
bindkey '^H' backward-kill-word

autoload -Uz url-quote-magic bracketed-paste-magic
zle -N self-insert url-quote-magic
zle -N bracketed-paste bracketed-paste-magic

setopt extended_glob

alias -g L='| less'
alias -g S='&> /dev/null'
alias -g G='| grep'
alias -g B='&> /dev/null &'
alias -g BB='&> /dev/null &!'