26 lines
489 B
Bash
26 lines
489 B
Bash
# 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 |