summaryrefslogtreecommitdiffstats
path: root/lynx_help/keystrokes/edit_help.html
blob: 42d3e8aac002161f49ff254dd929d3bc969a7af1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
<!-- $LynxId: edit_help.html,v 1.30 2021/07/01 21:02:38 tom Exp $ -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
  <meta name="generator" content=
  "HTML Tidy for HTML5 for Linux version 5.6.0">
  <title>Lynx Line Editor Default Key Binding</title>
  <link rev="made" href="mailto:lynx-dev@nongnu.org">
  <meta http-equiv="Content-Type" content=
  "text/html; charset=us-ascii">
  <meta name="description" content=
  "Describes Lynx's built-in line-editor, when it is used, and the keys used for the default binding. There are alternate and special bindings.">
</head>
<body>
  <div class="nav">
    <ul>
      <li><a href="#overview">Overview</a></li>

      <li><a href="#regular_keymap">Regular Keymap</a></li>

      <li><a href="#editing_keymap">Editing Keymap</a></li>

      <li><a href="#examples">Try it yourself</a></li>

      <li><a href="#notes">Notes</a></li>
    </ul>
  </div>

  <h2><a name="overview" id="overview">Overview</a></h2>

  <p><strong>Lynx</strong> invokes a built-in <em>Line Editor</em>
  for entering strings in response to prompts, in forms, and for
  email messages if an external editor has not been defined.
  Alternative key bindings are normally available (unless
  <strong>Lynx</strong> was configured with
  <code>--disable-alt-bindings</code>). If available, they may be
  selected via the &ldquo;o&rdquo;ptions menu, or by editing
  lineedit_mode in the &ldquo;.lynxrc&rdquo; file.</p>

  <p>Two such alternative key bindings, which may be available on
  your system, are the</p>

  <ul>
    <li><a href="alt_edit_help.html">Alternative Binding</a> keymap
    and the</li>

    <li><a href="bashlike_edit_help.html">Bash-like Binding</a>
    keymap.</li>
  </ul>

  <p>You can always see the current set of key-bindings in
  <strong>Lynx</strong> by opening the special URL <a href=
  "LYNXEDITMAP:">LYNXEDITMAP:</a>. This page is provided for those
  not using Lynx.</p>

  <p><strong><em>Note:</em></strong> setting emacs/vi keys ON has
  no effect on line-editor bindings.</p>

  <h2><a name="regular_keymap" id="regular_keymap">Regular
  Keymap</a></h2>

  <p>This is the <em>Default Binding</em> keymap:</p>

  <pre>
     ENTER  Input complete        -  RETURN
     TAB    Input complete        -  TAB, Do
     ABORT  Input cancelled       -  Ctrl-G, Ctrl-O, (Ctrl-C on some systems)
     ERASE  Erase the line        -  Ctrl-U

     BACK   Cursor back     char  -  Left-Arrow
     FORW   Cursor forward  char  -  Right-Arrow
     BACKW  Cursor back     word  -  Ctrl-P
     FORWW  Cursor forward  word  -  Ctrl-N
     BOL    Go to begin of  line  -  Ctrl-A, Home, Find
     EOL    Go to end   of  line  -  Ctrl-E, End,  Select

     DELP   Delete prev     char  -  Backspace, Delete, Remove
     DELN   Delete next     char  -  Ctrl-D, Ctrl-R (<em><a href=
"#note_1">see note 1</a></em>)
     DELPW  Delete prev     word  -  Ctrl-B
     DELNW  Delete next     word  -  Ctrl-F
     DELEL  Delete to end of line -  Ctrl-_

     UPPER  Upper case the line   -  Ctrl-T
     LOWER  Lower case the line   -  Ctrl-K

     LKCMD  Invoke cmd prompt     -  Ctrl-V (in form text fields, only) (<em><a href="#note_2">see note 2</a></em>)
     SWMAP  Switch input keymap   -  Ctrl-^ (if compiled in)
</pre>
  <h2><a name="editing_keymap" id="editing_keymap">Editing
  Keymap</a></h2>

  <p><a name="TASpecial" id="TASpecial">These are special commands
  for use only in textarea fields</a> (<em><a href="#note_3">see
  note 3</a></em>):</p>

  <pre>
          Textarea external edit  - Ctrl-X e
          Insert file in textarea - Ctrl-X i
          Grow textarea           - Ctrl-X g
</pre>
  <h2><a name="emacs_bindings" id="emacs_bindings">Emacs-like
  commands</a></h2>

  <pre>
    TPOS    Transpose characters                   -  Ctrl-t
    SETMARK Set mark at current position in line   -  Ctrl-@
    XPMARK  Exchange current position with mark    -  Ctrl-x Ctrl-x
    KILLREG Kill region between mark and position  -  Ctrl-x Ctrl-w (<em><a href="#note_3">see note 3</a></em>)
    YANK    Insert text last killed (with KILLREG) -  Ctrl-y
</pre>
  <h2><a name="examples" id="examples">Try it yourself</a></h2>

  <p>Here is a little textarea for practice:</p>

  <form action="">
    <p>
    <textarea name="practice" cols="40" rows=
    "5">This text cannot be submitted.  Normally lines like
these would be part of a form that is filled out and
then submitted.  You can move around here and delete
or add text as you like, using the Line-Editor keys.
</textarea><input type="reset" value="[reset content]">
    </p>
  </form>

  <h2><a name="special_keys" id="special_keys">Special keys</a></h2>

  <p><samp><dfn>Ctrl-</dfn><strong>key</strong> means
  Control+<strong><kbd>key</kbd></strong>.
  <dfn><code>Ctrl-x</code></dfn> <strong>key</strong> means first
  Control+<kbd>x</kbd>, then <strong><kbd>key</kbd></strong>.
  <dfn>M-</dfn>key means Meta+<strong><kbd>key</kbd></strong>,
  where Meta is a modifier that can be entered in a variety of
  ways:</samp>
  </p>

  <ul>
    <li>First ESC, then the <strong><kbd>key</kbd></strong>. This
    does not work with all systems or on all connections, and if it
    does may not work for some keys (because the ESC character is
    also part of code sequences for "normal" function keys).</li>

    <li>Alt+<strong><kbd>key</kbd></strong>. This works if the
    terminal, console, or comm program is set up to interpret Alt
    as a modifier to send ESC. The Linux console acts like that by
    default for most keys; Kermit can be set up to do it, xterm can
    be for some keys, and so on. But the same caveats as for the
    previous item apply. This Alt mapping may also be possible,
    independent of the ESC character, for some keys in
    <strong>Lynx</strong> for DOS/i386 or for Win32.</li>

    <li>Ctrl-x <strong><kbd>key</kbd></strong>. Actually, currently
    the same internal table is used for Meta and the Ctrl-x prefix.
    Therefore all M-<strong><kbd>key</kbd></strong> combinations
    can also be typed as Ctrl-x <strong><kbd>key</kbd></strong>,
    and vice versa.</li>
  </ul>

  <p>A few key names may be less familiar now than when
  <strong>Lynx</strong> was first written: <em>Find</em>,
  <em>Select</em> and <em>Remove</em>. The <a href=
  "https://invisible-island.net/xterm/xterm.faq.html#xterm_keypad">XTerm
  FAQ</a> shows some typical keypad layouts of emulators for VT220
  and other DEC terminals.</p>

  <p>The VT220 did not have a &ldquo;backspace&rdquo; key but
  <strong>Lynx</strong>'s default bindings mention it. Both ASCII
  <samp>BS</samp> (backspace) and <samp>DEL</samp> are bound by
  default to the same functions. <samp>DEL</samp> (occasionally
  referred to as <samp>RUBOUT</samp>) is not the same as
  <samp>Delete</samp>: the former is a single character while the
  latter is usually a sequence of characters.</p>

  <h2><a name="notes" id="notes">Notes</a></h2>

  <ol>
    <li id="note_1">"next" means the character "under" a box or
    underline style cursor; it means "to the immediate right of" an
    I-beam (between characters) type cursor.</li>

    <li id="note_2">Follow Ctrl-V with any recognized key command,
    to "escape" from a text input field.</li>

    <li id="note_3">For other key combinations using Ctrl-X as a
    prefix key, see the Help page for the <a rel="Sibling" title=
    "Bash-Like Binding" href=
    "bashlike_edit_help.html">Bash-Like</a> Binding.</li>
  </ol>
</body>
</html>