INFOKEY(1) | General Commands Manual | INFOKEY(1)

# NAME

`infokey` — compile custom key bindings file

# SYNOPSIS

`infokey` | [`--help`] [`--version`] [`--output` file] [input file]

# DESCRIPTION

The `infokey` utility compiles a source file ($HOME/.infokey
by default) containing info(1) customizations into a binary format ($HOME/.info
by default). info(1) reads the binary file at startup to override the default key bindings and variable definitions.

Besides the standard `--help` and `--version` options, the only option is `--output` file. This tells `infokey` to write the binary data to file instead of $HOME/.info.

The format of the source file read by `infokey` is most easily illustrated by example. For instance, here is a sample .infokey source file suitable for aficionados of vi(1) or less(1):

    #info
    j       next-line
    k       prev-line
    l       forward-char
    h       backward-char
    \kd     next-line
    \ku     prev-line
    \kr     forward-char
    \kl     backward-char
    \       scroll-forward
    \kD     scroll-forward-page-only
    b       scroll-backward
    \kU     scroll-backward-page-only
    g       beginning-of-node
    \kh     beginning-of-node
    G       end-of-node
    \ke     end-of-node
    \t      select-reference-this-line
    -       history-node
    n       next-node
    p       prev-node
    u       up-node
    t       top-node
    d       dir-node
    #var
    scroll-step=1

The source file consists of one or more "sections". Each section starts with a line that identifies the type of section. Possible sections are:

#info
  Key bindings for info(1) windows. The start of this section is indicated by a line containing just `#info' by itself. If this is the first section in the source file, the `#info' line can be omitted. The rest of this section consists of lines of the form:

      STRING whitespace ACTION [ whitespace [ # comment ] ] newline

  Whitespace is any sequence of one or more spaces and/or tabs. Comment is any sequence of any characters, excluding newline.

  STRING is the key sequence which invokes the action. ACTION is the name of an info(1) command. The characters in STRING are interpreted literally or prefixed by a caret (`^') to indicate a control character. A backslash followed by certain characters specifies input keystrokes as follows:

  \b
    Backspace
  \e
    Escape (ESC)
  \n
    Newline
  \r
    Return
  \t
    Tab
  \ku
    Up arrow
  \kd
    Down arrow
  \kl
    Left arrow
  \kr
    Right arrow
  \kU
    Page Up
  \kD
    Page Down
  \kh
    HOME
  \ke
    END
  \kx
    Delete (DEL)
  \mX
    Meta-X, where X is any character as described above

  Backslash followed by any other character indicates that character is to be taken literally. Characters which must be preceded by a backslash include caret, space, tab, and backslash itself.

#echo-area
  Key bindings for the echo area. The start of this section is indicated by a line containing just `#echo-area' by itself. The rest of this section has a syntax identical to that for the key definitions for the info(1) area, described above.
#var
  Variable initializations. The start of this section is indicated by a line containing just `#var' by itself. Following this line is a list of variable assignments, one per line. Each line consists of a variable name followed by `=', followed by a value. There may be no whitespace between the variable name and the `=', and all characters following the `=', including whitespace, are included in the value.

Blank lines and lines starting with `#' are ignored, except for the special section header lines.

Key bindings defined in the .info file take precedence over info's default key bindings, whether or not `--vi-keys` is used. A default key binding may be disabled by overriding it in the .info file with the action `invalid'. In addition, all default key bindings can be disabled by adding this line anywhere in the relevant section:

`#stop`

This will cause info(1) to ignore all the default key commands for that section.

Beware: `#stop' can be dangerous. Since it disables all default key bindings, you must supply enough new key bindings to enable all necessary actions. Failure to bind any key to the `quit' command, for example, can lead to frustration.

The order in which key bindings are defined in the .info file is not important, except that the command summary produced by the `get-help-window' command only displays the first key that is bound to each command.

# FILES

$HOME/.infokey
  Default souce file for customizations.
$HOME/.info
  Default binary file for customizations.

# SEE ALSO

info(1)

# BUGS

bug-texinfo@gnu.org

February 15, 2003 | Debian