Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
a calculator for zsh-4.x
- X-seq: zsh-users 5841
- From: "Clifford Caoile" <piyokun@xxxxxxxxx>
- To: <zsh-users@xxxxxxxxxx>
- Subject: a calculator for zsh-4.x
- Date: Thu, 30 Jan 2003 01:03:02 +0900
- Importance: Normal
- Mailing-list: contact zsh-users-help@xxxxxxxxxx; run by ezmlm
Dear zsh-users:
In my excitement over zsh-4.x, I bring to you some sample calculator
functions to enhance your zsh experience. However, I haven't searched this
mailing list for similar subjects at all, and I am ignorant of this mailing
list past posts. Perhaps I'm duplicating suggestions here, but I hope this
is helpful.
I don't know about you, but I reach for zsh when I want to calculate
addition in hexadecimal (like whenever I have read a linux ksymoops
message). With the following .zshrc snippet, my shell becomes a
convenient-to-type calculator:
Code Snippet:
# -----------------------------------------------------------------begin
# calculator - paste me into your .zshrc
# ----------------------------------------------------------------------
# Here are some quick calculators that output in integer
# hexadecimal, decimal, and binary.
zcalc () { print $(( ans = ${1:-ans} )) }
zcalch () { print $(( [#16] ans = ${1:-ans} )) }
zcalcd () { print $(( [#10] ans = ${1:-ans} )) }
zcalco () { print $(( [#8] ans = ${1:-ans} )) }
zcalcb () { print $(( [#2] ans = ${1:-ans} )) }
# A key binding that will allow you to quickly get into zcalc
bindkey -s '\C-xd' "zcalc \'"
# this last one lets you calculate the ascii value of a single character
zcalcasc () { print $(( [#16] ans = ##${1:-ans} )) }
# -------------------------------------------------------------------end
Usage example:
%> zcalc '23 / 3' # integer math
7
%> zcalc '23.0 / 3' # forced floating point math
7.666666666666667
%> zcalc '23 % 3' # programmers love to mod
2
%> zcalc 'ans + 2' # your last answer is still there
4
%> zcalc '0xCD & 0x23' # uh, why are you bit masking?
1
%> zcalc '0xCD | 0x23' # or you like "or"?
239
%> zcalcb ; zcalco ; zcalcd ; zcalch # I want it in a readable format
please.
2#11101111
8#357
239
16#EF
%> zcalch '2#11101111 & 0211' # mix the input bases
16#C3
Recommended convenience feature:
Try the bindkey Control-X d. It's a quick jump into zsh-based calculator.
You only need to worry about adding the last quotation mark. (Ugh)
Call for advice:
Actually, I'm most interested in enhancing the bindkey definition. Placing
just one quotation mark on the command line seems to be sloppy. I wish I was
able to set the position of the cursor at any arbitrary point of the
inserted string, just like in emacs. Anybody have any suggestions? I guess
this is just the whole reason for posting...
Instead of putting this in my .zshrc file, is it better to make it a zsh
module?
HTH, HAND
,-~-.
< ^ ; ~, Clifford Escobar CAOILE (aka "Piyo-kun")
(_ _,
J~~> _.___...:.__..__.: __.:_. .:_.__::_..:._::._... _____ p(^_^)q
Messages sorted by:
Reverse Date,
Date,
Thread,
Author