add thousand separator to zsh calc
This commit is contained in:
parent
50f0b33af3
commit
3a781be75e
@ -2,9 +2,28 @@ export ZCALC_HISTFILE="${HOME}/.zcalc_history"
|
||||
|
||||
autoload -U zcalc
|
||||
|
||||
function __calc {
|
||||
ZDOTDIR="${HOME}" zcalc -f -e "$*"
|
||||
function __format_number() {
|
||||
local num="${1}"
|
||||
if [[ "${num}" =~ ^[-]?[0-9]+$ ]]; then
|
||||
LC_NUMERIC=en_US.UTF-8 printf "%'d\n" "${num}" | sed "s/,/_/g"
|
||||
else
|
||||
echo "${num}"
|
||||
fi
|
||||
}
|
||||
|
||||
function __calc {
|
||||
# Получаем результат от zcalc
|
||||
local result
|
||||
result="$(ZDOTDIR="${HOME}" zcalc -f -e "$*" 2>/dev/null)"
|
||||
|
||||
result="${result%.*}"
|
||||
if [[ "$result" =~ ^[-]?[0-9]+$ ]]; then
|
||||
__format_number "$result"
|
||||
else
|
||||
echo "$result"
|
||||
fi
|
||||
}
|
||||
|
||||
aliases[calc]='noglob __calc'
|
||||
aliases[=]='noglob __calc'
|
||||
|
||||
@ -13,7 +32,7 @@ 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/\.$//'
|
||||
__calc "${BUFFER}"
|
||||
BUFFER=
|
||||
fi
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user