calc: Creating User Keys
18.1 Creating User Keys
=======================
Any Calculator command may be bound to a key using the ‘Z D’
(‘calc-user-define’) command. Actually, it is bound to a two-key
sequence beginning with the lower-case ‘z’ prefix.
The ‘Z D’ command first prompts for the key to define. For example,
press ‘Z D a’ to define the new key sequence ‘z a’. You are then
prompted for the name of the Calculator command that this key should
run. For example, the ‘calc-sincos’ command is not normally available
on a key. Typing ‘Z D s sincos <RET>’ programs the ‘z s’ key sequence
to run ‘calc-sincos’. This definition will remain in effect for the
rest of this Emacs session, or until you redefine ‘z s’ to be something
else.
You can actually bind any Emacs command to a ‘z’ key sequence by
backspacing over the ‘calc-’ when you are prompted for the command name.
As with any other prefix key, you can type ‘z ?’ to see a list of all
the two-key sequences you have defined that start with ‘z’. Initially,
no ‘z’ sequences (except ‘z ?’ itself) are defined.
User keys are typically letters, but may in fact be any key.
(<META>-keys are not permitted, nor are a terminal’s special function
keys which generate multi-character sequences when pressed.) You can
define different commands on the shifted and unshifted versions of a
letter if you wish.
The ‘Z U’ (‘calc-user-undefine’) command unbinds a user key. For
example, the key sequence ‘Z U s’ will undefine the ‘sincos’ key we
defined above.
The ‘Z P’ (‘calc-user-define-permanent’) command makes a key binding
permanent so that it will remain in effect even in future Emacs
sessions. (It does this by adding a suitable bit of Lisp code into your
Calc init file; that is, the file given by the variable
‘calc-settings-file’, typically ‘~/.emacs.d/calc.el’.) For example, ‘Z
P s’ would register our ‘sincos’ command permanently. If you later wish
to unregister this command you must edit your Calc init file by hand.
(General Mode Commands, for a way to tell Calc to use a
different file for the Calc init file.)
The ‘Z P’ command also saves the user definition, if any, for the
command bound to the key. After ‘Z F’ and ‘Z C’, a given user key could
invoke a command, which in turn calls an algebraic function, which might
have one or more special display formats. A single ‘Z P’ command will
save all of these definitions. To save an algebraic function, type ‘'’
(the apostrophe) when prompted for a key, and type the function name.
To save a command without its key binding, type ‘M-x’ and enter a
function name. (The ‘calc-’ prefix will automatically be inserted for
you.) (If the command you give implies a function, the function will be
saved, and if the function has any display formats, those will be saved,
but not the other way around: Saving a function will not save any
commands or key bindings associated with the function.)
The ‘Z E’ (‘calc-user-define-edit’) command edits the definition of a
user key. This works for keys that have been defined by either keyboard
macros or formulas; further details are contained in the relevant
following sections.