Next: Keyboard Macros, Previous: Programming, Up: Programming [Contents][Index]

### 17.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. (See 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.

Next: Keyboard Macros, Previous: Programming, Up: Programming [Contents][Index]