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