# calculator export ZCALC_HISTFILE="${HOME}/.zcalc_history" autoload -U zcalc function __calc { zcalc -f -e "$*" } aliases[calc]='noglob __calc' aliases[=]='noglob __calc' function accept-line() { if [[ $BUFFER =~ '^[ ]?\(?[-+]?[0-9]+[^a-zA-Z]+' ]]; then echo test "$BUFFER[1]" != " " && print -S -- "$BUFFER" # saving the command to history __calc "$BUFFER" | sed 's/\.$//' BUFFER= fi zle .$WIDGET } zle -N accept-line # vim: ft=zsh