summaryrefslogtreecommitdiffstats
path: root/lynx_help/keystrokes/bashlike_edit_help.html
blob: 621e3e086a0bded4f226518775a49c0cfa3149a3 (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
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
<!-- $LynxId: bashlike_edit_help.html,v 1.22 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 Bash-Like Key Binding</title>
  <link rev="made" href="mailto:lynx-dev@nongnu.org">
  <link rel="Sibling" title="Default Binding" href=
  "edit_help.html">
  <link rel="Sibling" title="Alternative Binding" href=
  "alt_edit_help.html">
  <meta http-equiv="Content-Type" content=
  "text/html; charset=us-ascii">
  <meta name="description" content=
  "Describes the bash-like line editor bindings for Lynx. This is one of the alternate bindings normally compiled-in">
</head>
<body>
  <div class="nav">
    <ul>
      <li><a href="#overview">Overview</a></li>

      <li><a href="#bash_bindings">Bash-like bindings</a></li>

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

      <li><a href="#emacs_bindings">Emacs-like commands</a></li>

      <li><a href="#special_keys">Comments on special keys</a></li>

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

      <li><a href="#miscellaneous">Additional details</a></li>
    </ul>
  </div>

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

  <p><strong>Lynx</strong> invokes a built-in <a href=
  "edit_help.html">Line Editor</a> 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>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 direct effect on line-editor bindings.</p>

  <h2><a name="bash_bindings" id="bash_bindings">Bash-like
  bindings</a></h2>

  <p>This is the <em>Bash-like Binding</em> keymap.</p>

  <pre>
     ENTER  Input complete        -  Enter, RETURN
     TAB    Completion / Next     -  TAB, Do (<em><a href=
"#note_2">see note 2</a></em>)
     ABORT  Cancel / Undo Change  -  Ctrl-g, Ctrl-_
     ERASE  Erase the line        -  M-k, Ctrl-x k

     BACK   Cursor back     char  -  Left-Arrow,  Ctrl-b
     FORW   Cursor forward  char  -  Right-Arrow, Ctrl-f
     BACKW  Cursor back     word  -  M-b, Ctrl-r
     FORWW  Cursor forward  word  -  M-f, Ctrl-s (<em><a href=
"#note_5">see note 5</a></em>)
     BOL    Go to begin of  line  -  Ctrl-a, Home, Find
     EOL    Go to end   of  line  -  Ctrl-e, End,  Select (<em><a href="#note_4">see note 4</a></em>)

     DELP   Delete prev     char  -  Backspace
     DELN   Delete next     char  -  Ctrl-d, Delete, Remove (<em><a href="#note_1">see note 1</a></em>)
     DELPW  Delete prev     word  -  Ctrl-w, M-Backspace, M-Delete (<em><a href="#note_3">see note 3</a></em>)
     DELNW  Delete next     word  -  M-d
     DELBL  Delete to beg of line -  Ctrl-u
     DELEL  Delete to end of line -  Ctrl-k (<em><a href=
"#note_4">see note 4</a></em>)

     UPPER  Upper case the line   -  M-u
     LOWER  Lower case the line   -  M-l

     LKCMD  Invoke cmd prompt     -  Ctrl-v [FORM] (<em><a href=
"#note_6">see note 6</a></em>)
     SWMAP  Switch input keymap   -  Ctrl-^ (if compiled in)

<a name="TASpecial" id=
"TASpecial">Special commands for use in textarea fields</a> [FORM]:

     PASS!  Textarea external edit  - Ctrl-e Ctrl-e, Ctrl-x e (<em><a href="#note_4">see note 4</a></em>)
     PASS!  Insert file in textarea - Ctrl-x i
     PASS!  Grow textarea           - Ctrl-x g
</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="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="special_keys" id="special_keys">Special keys</a></h2>

  <p>See the <em><a href="edit_help.html#special_keys">Lynx Line
  Editor</a></em> page for an explanation of terminology and
  key-names.</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">For entering strings in response to prompts
    (that is, when not editing form text fields), some keys have
    different actions: TAB tries to complete input based on
    previous response; Up-Arrow and Down-Arrow may offer previous
    response and next response, respectively, from recall buffer
    for some prompts.</li>

    <li id="note_3">Ctrl-w can only be used for editing functions
    if its default KEYMAP to REFRESH is changed. This can be done
    in the lynx.cfg file, for example with the line
    "KEYMAP:^W:DO_NOTHING". This also applies for other keys: as
    long as the key's action is mapped to REFRESH, either with an
    explicit KEYMAP in lynx.cfg or by default, the key's Line
    Editor binding is disabled.</li>

    <li id="note_4">These keys invoke special behavior when pressed
    twice in a row: Ctrl-e Ctrl-e calls the external editor for
    changing the text in a textarea (if available). Ctrl-k Ctrl-k
    will move to the next link, so that all lines in a textarea can
    be conveniently cleared by repeating Ctrl-k.</li>

    <li id="note_5">Key is likely unavailable for
    <strong>Lynx</strong>, because it is interpreted by operating
    system, comm program, or curses library, or swallowed as part
    of escape sequence recognition. Binding is provided for the
    benefit of those where this does not apply.</li>

    <li id="note_6">where <strong>[FORM]</strong> is marked,
    indicates that the binding is effective only in form text
    fields. It is ignored by Line Editor elsewhere.</li>
  </ol>

  <p>When a text input field, including a textarea line, is
  selected, the Line Editor functions get a first grab at the keys
  entered. If a key has no function defined in the Line Editor
  binding, it can either be ignored, or passed on for normal key
  command handling, where modifiers like Ctrl-x or Meta currently
  have no effect (see the <a href="LYNXKEYMAP:">Key Map Page</a>
  accessible with the key <kbd>K</kbd> for current
  information).</p>

  <h2><a name="miscellaneous" id="miscellaneous">Additional
  details</a></h2>

  <p>Here are some additional details on other keys, for the
  curious (very much subject to change)</p>

  <pre>
Normal key action when used in form fields, subject to remapping
with KEYMAP: [FORM (except Up-Arrow, Down-Arrow)]
            Ctrl-l (<em><a href="#note_3">see note 3</a></em>)
            Ctrl-o, Ctrl-z, Ctrl-\, Ctrl-] (<em><a href=
"#note_5">see note 5</a></em>)
            Ctrl-n [emacskey], Ctrl-p [emacskey]
            Up-Arrow, Down-Arrow (<em><a href=
"#note_2">see note 2</a></em>)
            Page-Up, Page-Down, F1, Back-Tab

Normal key command with Meta modifier ignored when used in form fields,
subject to remapping with KEYMAP: [FORM (except Up-Arrow, Down-Arrow)]
            M-Ctrl-l (<em><a href=
"#note_3">see note 3</a></em>) M-Ctrl-o <a href="#no_meta">[!]</a>,
            M-Ctrl-z, M-Ctrl-\, M-Ctrl-] (<em><a href=
"#note_5">see note 5</a></em>)
            M-Ctrl-u, M-/, M-n
            M-Up-Arrow <a href=
"#no_meta">[!]</a>, M-Down-Arrow <a href=
"#no_meta">[!]</a> (<em><a href="#note_2">see note 2</a></em>)
            M-Page-Up <a href=
"#no_meta">[!]</a>, M-Page-Down <a href=
"#no_meta">[!]</a>, M-Home, M-End

Passed as specific command:
                        lynx action    duplicates by default
                        -----------    ---------------------
            M-Ctrl-d    NEXT_LINK      Down-Arrow
            M-Ctrl-e    EDITTEXTAREA   Ctrl-e Ctrl-e
            M-Ctrl-k    LPOS_NEXT_LINK (none, Down-Arrow suggested)
            M-e         EDITTEXTAREA   Ctrl-e Ctrl-e
            M-g         GROWTEXTAREA   (none, Ctrl-v $ suggested?)
            M-i         INSERTFILE     (none, Ctrl-v # suggested?)
            M-&lt;        HOME           M-Home
            M-&gt;        END            M-End
            M-F1        DWIMHELP       F1
            M-Find      WHEREIS        Ctrl-v /
            M-Select    NEXT           Ctrl-v n

Duplicates function of other key(s):
                        edit action    duplicates
                        -----------    ----------
            M-Ctrl-b    BACKW          M-b, Ctrl-r
            M-Ctrl-f    FORWW          M-f
            M-Ctrl-n    FORWW          M-f
            M-Ctrl-p    BACKW          M-b, Ctrl-r
            M-Ctrl-r    BACKW          M-b, Ctrl-r
            M-a         BOL            Ctrl-a, Home, ...

Modifier ignored, and duplicates function of other key(s):
                        edit action    duplicates
                        -----------    ----------
            M-Ctrl-a    BOL            Ctrl-a, Home, ...
            M-Ctrl-g    ABORT          Ctrl-g, ...
            M-TAB       TAB            Ctrl-i <a href=
"#no_meta">[!]</a>
            M-Ctrl-j    ENTER          Ctrl-m, Ctrl-j, Enter / RETURN
            M-RETURN    ENTER          Ctrl-m, Ctrl-j, Enter / RETURN
            M-Ctrl-y    YANK           Ctrl-y <a href=
"#no_meta">[!]</a>
            M-Ctrl-^    SWMAP          Ctrl-^ <a href=
"#no_meta">[!]</a> (if compiled in)
       M-Right-Arrow    FORW           Right-Arrow <a href=
"#no_meta">[!]</a>, Ctrl-f
        M-Left-Arrow    BACK           Left-Arrow <a href=
"#no_meta">[!]</a>,  Ctrl-b
            M-Do        TAB            Ctrl-i <a href=
"#no_meta">[!]</a>

Key completely ignored:
            Ctrl-q, Insert
            M-Ctrl-q, M-Ctrl-s, M-Ctrl-t, M-Ctrl-v, M-ESC (<em><a href="#note_5">see note 5</a></em>)
            M-Ctrl-@, M-Ctrl-_, M-Remove, M-Insert <a href=
"#no_meta">[!]</a>

Meta + other (mostly, printable character) keys:
              Modifier ignored, or sequence swallowed (<em><a href=
"#note_5">see note 5</a></em>).
            M-@, M-E...M-Z, M-\, M-^, M-_ attempt to interpret
              as 7-bit escape representation for character in 8-bit
              control (C1) range if appropriate according to
              Display Character Set.

[emacskey] Normal key action subject to emacs_keys setting.

<a name="no_meta" id=
"no_meta">[!]</a> Action of key with Meta modifier follows action of key without
    Meta.  If you manage to enter the Meta key while Line-Editor
    Binding is not set to Bash-Like, and the unmodified binding
    is different from that listed here, M-&lt;<var>key</var>&gt; will act
    like &lt;<var>key</var>&gt;.
</pre>
</body>
</html>