Skip to content

Keybindings

Tavis Ormandy edited this page Oct 28, 2022 · 7 revisions

XTerm

These are the default key bindings used by Lotus 1-2-3 in Xterm and Xterm-compatible terminals.

1-2-3 Function 1-2-3 Key Key Name Key Output
{HOME} Home Home \E[H
{END} End End \E[F
{UP} Up Arrow Up Arrow \E[A
{DOWN} Down Arrow Down Arrow \E[B
{LEFT} Left Arrow Left Arrow \E[D
{RIGHT} Right Arrow Right Arrow \E[C
{PGUP} Pg Up Pg Up \E[5~
{PGDN} Pg Dn Pg Dn \E[6~
{BIG LEFT} Ctrl-Left Ctrl Left Arrow \E[1;5D
{BIG RIGHT} Ctrl-Right Ctrl Right Arrow \E[1;5C
{NEXT SHEET} Ctrl-Pg Up Ctrl Pg Up \E[5;5~
{PREV SHEET} Ctrl-Pg Dn Ctrl Pg Dn \E[6;5~
{FIRST CELL} Ctrl-Home Ctrl Home \E[1;5H
{FILE} Ctrl-End Ctrl End \E[1;5F
{TAB} Tab Tab \t
{BACKSPACE} Backspace Backspace ^B
{DEL} Del Del \E[3~
{INS} Ins Ins \E[2~
{RETURN} Return Enter ^M
{ESC} Esc Esc \E
{ESC} Esc F11 \E[23~
{SCROLL LOCK} Scroll Lock F12 \E[24~
{HELP} F1 F1 \EOP
{EDIT} F2 F2 \EOQ
{NAME} F3 F3 \EOR
{ABS} F4 F4 \EOS
{GOTO} F5 F5 \E[15~
{WINDOW} F6 F6 \E[17~
{QUERY} F7 F7 \E[18~
{TABLE} F8 F8 \E[19~
{CALC} F9 F9 \E[20~
{GRAPH} F10 F10 \E[21~
{COMPOSE} Alt-F1 Alt-F1 \E[1;3P
{RECORD} Alt-F2 Alt-F2 \E[1;3Q
{RUN} Alt-F3 Alt-F3 \E[1;3R
{UNDO} Alt-F4 Alt-F4 \E[1;3S
{UNDO} Alt-F4 Alt-F5 \E[15;3~
{UNDO} Alt-F4 Ctrl-F4 \E[[1;5S
{ZOOM} Alt-F6 Alt-F6 \E[17;3~
{REFRESH} Undefined Ctrl-L ^L
{BELL} Undefined
{MAC-A} Alt-a Alt-a \Ea
{MAC-A} Alt-a Alt-A \EA
{MAC-B} Alt-b Alt-b \Eb
{MAC-B} Alt-b Alt-B \EB
{MAC-C} Alt-c Alt-c \Ec
{MAC-C} Alt-c Alt-C \EC
{MAC-D} Alt-d Alt-d \Ed
{MAC-D} Alt-d Alt-D \ED
{MAC-E} Alt-e Alt-e \Ee
{MAC-E} Alt-e Alt-E \EE
{MAC-F} Alt-f Alt-f \Ef
{MAC-F} Alt-f Alt-F \EF
{MAC-G} Alt-g Alt-g \Eg
{MAC-G} Alt-g Alt-G \EG
{MAC-H} Alt-h Alt-h \Eh
{MAC-H} Alt-h Alt-H \EH
{MAC-I} Alt-i Alt-i \Ei
{MAC-I} Alt-i Alt-I \EI
{MAC-J} Alt-j Alt-j \Ej
{MAC-J} Alt-j Alt-J \EJ
{MAC-K} Alt-k Alt-k \Ek
{MAC-K} Alt-k Alt-K \EK
{MAC-L} Alt-l Alt-l \El
{MAC-L} Alt-l Alt-L \EL
{MAC-M} Alt-m Alt-m \Em
{MAC-M} Alt-m Alt-M \EM
{MAC-N} Alt-n Alt-n \En
{MAC-N} Alt-n Alt-N \EN
{MAC-O} Alt-o Alt-o \Eo
{MAC-P} Alt-p Alt-p \Ep
{MAC-P} Alt-p Alt-P \EP
{MAC-Q} Alt-q Alt-q \Eq
{MAC-Q} Alt-q Alt-Q \EQ
{MAC-R} Alt-r Atl-r \Er
{MAC-R} Alt-r Alt-R \ER
{MAC-S} Alt-s Alt-s \Es
{MAC-S} Alt-s Alt-S \ES
{MAC-T} Alt-t Alt-t \Et
{MAC-T} Alt-t Alt-T \ET
{MAC-U} Alt-u Alt-u \Eu
{MAC-U} Alt-u Alt-U \EU
{MAC-V} Alt-v Alt-v \Ev
{MAC-V} Alt-v Alt-V \EV
{MAC-W} Alt-w Alt-w \Ew
{MAC-W} Alt-w Alt-W \EW
{MAC-X} Alt-x Alt-x \Ex

Troubleshooting

If you're using 1-2-3 over a very slow connection, you might need to adjust how long 1-2-3 waits to make sure it received the whole input.

To do this, set the $LOTUS_ESCAPE_TIMEOUT environment variable to the number of deciseconds to wait for more input. The default is 1 decisecond, a setting of 10 would wait a whole second.

Rebinding Keys

The macro keys, Alt+A to Alt+Z, can be bound to any function per-worksheet within 1-2-3.

For example, you could assign /fs~b to Alt+S to make a "Quick Save" key.

See the introduction to macros for more information.

If you don't want to use the macro keys, you need to edit the keymaps. In the future, we hope to have a convenient tool that can do this for you.

Keymaps

1-2-3 uses keymap files to map the keys you press to functions, these need to be regenerated for different terminals or if you want to rebind your keys.

To generate a keymap for a new terminal, try this:

$ mkdir -p share/lotus/keymaps/${TERM:0:1}
$ ./keymap/keymap > share/lotus/keymaps/${TERM:0:1}/${TERM}

Note: You can also specify a terminal name as a parameter.

Troubleshooting

If you get warnings about missing keys, it might not be possible for some key bindings to be automatically assigned. At the moment, you have to fix this issue manually.

  1. First, figure out what key you want to use as a replacement. For example, if you don't have a PgUp key, perhaps you can use Alt+Up instead.
  2. Figure out what terminfo(5) capability refers to that key, it might tell you in the manpage. If not, you might have to figure it out from the output of infocmp -x. For example, Home is called khome.
  3. Modify the keydefs array at the top of keymap.c. Find the entry for your missing key, and replace the missing capability name with the new one.
  4. Recompile.
Clone this wiki locally