From: "Clifford Caoile" <piyokun@email.com>
To: <zsh-users@sunsite.dk>
Subject: a calculator for zsh-4.x
Date: Thu, 30 Jan 2003 01:03:02 +0900 [thread overview]
Message-ID: <BBEKIEKOHGEFJBFLEENGEEEKCGAA.piyokun@email.com> (raw)
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
next reply other threads:[~2003-01-29 16:03 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-01-29 16:03 Clifford Caoile [this message]
2003-01-29 16:18 ` Phil Pennock
2003-01-29 19:43 ` kwong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=BBEKIEKOHGEFJBFLEENGEEEKCGAA.piyokun@email.com \
--to=piyokun@email.com \
--cc=zsh-users@sunsite.dk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).