HELP VEDXTERMKEYS                         Revised Aaron Sloman July 2003

Note: the keybindings for both Ved in an Xterm window and XVed were
rationalised and made to be similar on 27 Jul 2003. The new bindings are
documented in this file and in HELP * XVEDKEYS. For Ved in an Xterm window to
work as described here, please note the required alterations to .Xdefaults
included below.

The code libraries for the keybindings are here:

    LIB * vedxtermkeys
    LIB * vedxvedkeys


CONTENTS (Use ENTER g, to access desired section.)

 -- Introduction
 -- Settings for .Xdefaults
 -- Layout of keyboard
 -- Keyboard actions
 -- -- Function Keys on the top row
 -- -- Named and Arrow Keys to right of alphabetic keys
 -- -- Numeric Keypad Keys
 -- Additional functions
 -- Using the Mouse to Move the Cursor (LIB * VEDXGOTOMOUSE)

To read further: Use the "Page Down" key or CTRL V (Screen down)

-- Introduction -------------------------------------------------------

This file depicts how VED running in an Xterm window, and XVED running
in its own windows, map keyboard actions onto editor events. This should
also work if you are running linux on a PC in "console" mode, i.e.
without the graphical X window server running. It is assumed that if you
are running in an Xterm window, the Unix/Linux environment variable
$TERM is set to 'xterm'. If you are working at a linux console $TERM
should be set to 'linux' (the normal default) or 'xterm'.

If you have logged in remotely form some other machine using something
like telnet, rlogin or ssh, some of the following may or may not work,
depending on the character codes transmitted when you press keys on your
keyboard, which varies from one networking tool to another. In all such
cases you should be able to use the key sequences which do not depend on
function keys, as described in
    HELP VEDKEYS

-- Settings for .Xdefaults --------------------------------------------
The following should go into the user's .Xdefaults file or a system-wide
defaults file, such as /usr/X11R6/lib/X11/app-defaults/XTerm
to make Ved (and some other things) work as expected.

    ! xterm translations to make VED work
    XTerm*VT100*Translations: #override \
        <Key>KP_0: string(0x1b) string("Op") \n\
        <Key>KP_Insert: string(0x1b) string("Op") \n\
        <Key>KP_Decimal: string(0x1b) string("On") \n\
        <Key>KP_Delete: string(0x1b) string("On") \n\
        <Key>KP_Home: string(0x1b) string("Ow") \n\
        <Key>KP_7: string(0x1b) string("Ow") \n\
        <Key>KP_Prior: string(0x1b) string("Oy") \n\
        <Key>KP_9: string(0x1b) string("Oy") \n\
        <Key>KP_Next: string(0x1b) string("Os") \n\
        <Key>KP_1: string(0x1b) string("Oq") \n\
        <Key>KP_End: string(0x1b) string("Oq") \n\
        <Key>KP_3: string(0x1b) string("Os")
    XTerm*deleteIsDEL: true

You can also put things in your .Xdefaults to determine default
font size in an Xterm window, and the number of columns and rows: e.g.

    XTerm*BodyFont: 10x20
    XTerm*VT100.geometry: 90x36



-- Layout of keyboard -------------------------------------------------

In what follows it is assumed that you are using a keyboard with the
standard configuration, now found on most PC keyboards, and many others
(e.g. NCD Xterminals), containing:

    1. On the top row, function keys labelled F1, F2, ... F12

    2. A standard alphanumeric collection of keys, with space bar below,
       shift keys, ESC, Tab, Control and CapsLock keys (usually on left,
       some possibly duplicated on the right), and on the right BackSpace
       and RETURN.

    3. An "arrow" keypad with four arrow keys, and above it six keys
       arranged in two rose,

    4. A numeric keypad on the right with "-" on top right, "+" below
       it, ENTER below that, and at the bottom "0/Ins" and "./Del" keys.

    5. If you are using a Sun workstation there may be an additional
       keypad on the left, in two columns of 5 keys.


        ----------------------------------------  ----------
        |    1. Function keys                  |  |not used|
        ----------------------------------------  ----------

        ----------------------------------------  --------- -----------
        |                                      |  | keypad| |         |
        |    2. Main key board                 |  --------- |4.numeric|
        |                                      |     3.     |  keypad |
        |                                      |  --------- |         |
        |                                      |  | arrows| |         |
        ----------------------------------------  --------- -----------


The four sets of keys shown work the same in VED, on NCD X terminals, on
PCs used as Xterminals or PCs running linux, on Digital Alpha
workstations, and on Suns with "type-5" keyboards.

The numeric keypad should be configured to transmit function codes not
the numeric and arithmetic symbols printed on the keys. This should
happen automatically.

The ENTER key on the numeric keypad should in that case transmit
different codes from the RETURN key on the main keyboard, as Ved and
XVed use them for different purposes. If for some reason the ENTER key
is not working, use ^G (CTRL G) as ENTER.

If you have three keys to the left of the Space bar, they may be
labelled Ctrl, Window (with a picture), and Alt (or Meta). In that case
you may find that the Window key also works as an ENTER key.

(You may find that you have additional keys that are not used. If you
wish to use them you may find it useful to get the free software package
xkeycaps to configure them. However that is beyond the scope of this
file.)

Besides using special function keys to drive the VED editor, you can
also use "key sequences" described in HELP VEDKEYS. Those should work no
matter which keyboard you are using.


-- Keyboard actions ---------------------------------------------------

-- -- Function Keys on the top row

The lower line gives the functions associated with each key on its
own. The upper line gives the functions associated with ESC followed by
the key.

     (Note: "linepart" means most recently deleted part line segment.)

        F1       F2       F3       F4       F5        F6       F7
     +--------+--------+--------+--------+--------+--------+--------+
 Esc | mk top | mk end | yank   | yank   | yank   | yank   | yank   |
+Key | file   | file   |linepart| line   |linepart|linepart|linepart|
-----+--------+--------+--------+--------+--------+--------+--------+
 KEY | MARK   | MARK   | DELETE | DELETE | DELETE | DELETE | DELETE |
     | BEGIN  | END    | LINE <-| LINE   | LINE-> | WORD <-| WORD-> |
     +--------+--------+--------+--------+--------+--------+--------+

         F8       F9      F10      F11      F12
     +--------+--------+--------+--------+--------+
 Esc | move   | copy   | move   | POP    |Clear   |   The last two
+Key | in     | in     | out    |        | Mark   |   may be different
-----+--------+--------+--------+--------+--------+   on some
 KEY | MOVE   | COPY   |XREFRESH| PUSH   | XCHANGE|   keyboards.
     | RANGE  | RANGE  |(file?) |        | POSN.  |
     +--------+--------+--------+--------+--------+
NOTE: In XVED F10 will set up "File" options, so it cannot be used.


-- -- Named and Arrow Keys to right of alphabetic keys

       KEY                                 Esc+Key

    +--------+--------+--------+       +--------+--------+--------+
    |TOGGLE  | TOP OF | LAST   |       | line   |go start| xup    |
    | STATIC | FILE   | WINDOW |       | above  |of range|        |
    +--------+--------+--------+       +--------+--------+--------+
    | DELETE | END OF | NEXT   |       |        |goto end| xdn    |
    | CHAR < | FILE   | WINDOW |       |        |of range|        |
    +--------+--------+--------+       +--------+--------+--------+


             +--------+                         +--------+
             | CHAR   |                         | Up     |
             | UP     |                         | lots   |
    +--------+--------+--------+       +--------+--------+--------+
    | CHAR   | CHAR   | CHAR   |       | Left   | Down   | Right  |
    | LEFT   | DOWN   | RIGHT  |       | Lots   | Lots   | Lots   |
    +--------+--------+--------+       +--------+--------+--------+

Sometimes ESC followed by arrow may have a different effect, depending on the
keyboard: try it out.


-- -- Numeric Keypad Keys

Note "<" means "left" and ">" means "right"

       KEY                                     Preceded by ESC
                                             (first three columns only)
    +--------+--------+--------+--------+   +--------+--------+--------+
    |        | HELP   | LOAD   | REDO   |   |        | help   | load   |
    |        |XTRMKEYS| LINE   |        |   |        | on key | range  |
    +--------+--------+--------+--------+   +--------+--------+--------+
    | CHAR   | CHAR   | CHAR   |        |   | up     | up     | up     |
    | UP <   | UP     | UP >   | SWITCH |   | < lots | lots   | > lots |
    +--------+--------+--------+ STATUS |   +--------+--------+--------+
    | CHAR   | 5      | CHAR   |        |   | left   | 5      | right  |
    | LEFT   |        | RIGHT  |        |   | lots   |        | lots   |
    +--------+--------+--------+--------+   +--------+--------+--------+
    | CHAR   | CHAR   | CHAR   |        |   | down   | down   | down   |
    | DOWN < | DOWN   | DOWN > |        |   | < lots | lots   | > lots |
    +--------+--------+--------| ENTER  |   +--------+--------+--------+
    | WORD LEFT       | WORD   |        |
    |                 | RIGHT  |        |  (NB. lots = a third of window)
    +-----------------+--------+--------+

The 5 key may be given a function in some keyboard configurations and not in
others. Try it. It should normally default to vedmidwindow, which moves
the current line (where the ved cursor is) to the middle of the window,
showing context above and below.

-- Additional functions -----------------------------------------------

Some additional functions are provided in LIB * VEDXTERMKEYS

These two make it easy to move or copy the marked range in the current
file (the mnemonic should be obvious);

    ESC -
        keep one copy of marked range and move it here

    ESC =
        make two copies, by copying to here

    CTRL L
        Invokes vedxrefresh. Before refreshing the screen this procedure
        finds out if the xterm window has been re-sized and if so
        re-sets linewidth and window length accordingly.

    ESC Delete
    ESC BS
        This will invoke vedjoinline, which joins the current line to the
        previous line, no matter where the cursor is, and no matter whether
        this violates vedlinemax. Often useful when re-formatting.

    The variable vedexpand now defaults to the character `^` instead of
    to false. See HELP * vedexpand

See also HELP * VEDKEYS

-- Using the Mouse to Move the Cursor (LIB * VEDXGOTOMOUSE) -----------

The library program LIB * VEDXGOTOMOUSE makes the mouse available to
VED: for example, you can move the cursor and create marked ranges using
the mouse. See HELP * VEDXGOTOMOUSE for details.


-----------------------------------------------------------------------
This was originally a Birmingham Local Help file
    $poplocal/local/help/vedncdxtermkeys

--- C.all/help/vedxtermkeys
--- Copyright University of Sussex 2003. All rights reserved. ------
