Patrick Welche <prlw1@cam.ac.uk>
[netbsd-mini2440.git] / usr.bin / less / lesskey / lesskey.1
blob5445ce330641cf6ab00a1decc01c267e0e78637a
1 .\"     $NetBSD: lesskey.1,v 1.8 2003/04/14 02:56:49 mrg Exp $
2 .\"
3 .TH LESSKEY 1 "Version 394: 03 Dec 2005"
4 .SH NAME
5 lesskey \- specify key bindings for less
6 .SH SYNOPSIS
7 .B "lesskey [-o output] [--] [input]"
8 .br
9 .B "lesskey [--output=output] [--] [input]"
10 .br
11 .B "lesskey -V"
12 .br
13 .B "lesskey --version"
14 .SH DESCRIPTION
15 .I Lesskey
16 is used to specify a set of key bindings to be used by
17 .I less.
18 The input file is a text file which describes the key bindings,
19 If the input file is "-", standard input is read.
20 If no input file is specified, a standard filename is used
21 as the name of the input file, which depends on the system being used:
22 On Unix systems, $HOME/.lesskey is used;
23 on MS-DOS systems, $HOME/_lesskey is used;
24 and on OS/2 systems $HOME/lesskey.ini is used,
25 or $INIT/lesskey.ini if $HOME is undefined.
26 The output file is a binary file which is used by
27 .I less.
28 If no output file is specified,
29 and the environment variable LESSKEY is set,
30 the value of LESSKEY is used as the name of the output file.
31 Otherwise, a standard filename is used as the name of the output file,
32 which depends on the system being used:
33 On Unix and OS-9 systems, $HOME/.less is used;
34 on MS-DOS systems, $HOME/_less is used;
35 and on OS/2 systems, $HOME/less.ini is used,
36 or $INIT/less.ini if $HOME is undefined.
37 If the output file already exists,
38 .I lesskey
39 will overwrite it.
40 .PP
41 The -V or --version option causes
42 .I lesskey
43 to print its version number and immediately exit.
44 If -V or --version is present, other options and arguments are ignored.
45 .PP
46 The input file consists of one or more
47 .I sections.
48 Each section starts with a line that identifies the type of section.
49 Possible sections are:
50 .IP #command
51 Defines new command keys.
52 .IP #line-edit
53 Defines new line-editing keys.
54 .IP #env
55 Defines environment variables.
56 .PP
57 Blank lines and lines which start with a pound sign (#) are ignored,
58 except for the special section header lines.
60 .SH "COMMAND SECTION"
61 The command section begins with the line
62 .sp
63 #command
64 .sp
65 If the command section is the first section in the file,
66 this line may be omitted.
67 The command section consists of lines of the form:
68 .sp
69         \fIstring\fP \*[Lt]whitespace\*[Gt] \fIaction\fP [extra-string] \*[Lt]newline\*[Gt]
70 .sp
71 Whitespace is any sequence of one or more spaces and/or tabs.
72 The \fIstring\fP is the command key(s) which invoke the action.
73 The \fIstring\fP may be a single command key, or a sequence of up to 15 keys.
74 The \fIaction\fP is the name of the less action, from the list below.
75 The characters in the \fIstring\fP may appear literally, or be
76 prefixed by a caret to indicate a control key.
77 A backslash followed by one to three octal digits may be used to
78 specify a character by its octal value.
79 A backslash followed by certain characters specifies input
80 characters as follows:
81 .IP \eb
82 BACKSPACE
83 .IP \ee
84 ESCAPE
85 .IP \en
86 NEWLINE
87 .IP \er
88 RETURN
89 .IP \et
90 TAB
91 .IP \eku
92 UP ARROW
93 .IP \ekd
94 DOWN ARROW
95 .IP \ekr
96 RIGHT ARROW
97 .IP \ekl
98 LEFT ARROW
99 .IP \ekU
100 PAGE UP
101 .IP \ekD
102 PAGE DOWN
103 .IP \ekh
104 HOME
105 .IP \eke
107 .IP \ekx
108 DELETE
110 A backslash followed by any other character indicates that character is
111 to be taken literally.
112 Characters which must be preceded by backslash include
113 caret, space, tab and the backslash itself.
115 An action may be followed by an "extra" string.
116 When such a command is entered while running
117 .I less,
118 the action is performed, and then the extra
119 string is parsed, just as if it were typed in to
120 .I less.
121 This feature can be used in certain cases to extend
122 the functionality of a command.
123 For example, see the "{" and ":t" commands in the example below.
124 The extra string has a special meaning for the "quit" action:
125 when
126 .I less
127 quits, first character of the extra string is used as its exit status.
129 .SH EXAMPLE
130 The following input file describes the set of
131 default command keys used by less:
134         #command
135         \er             forw-line
136         \en             forw-line
137         e               forw-line
138         j               forw-line
139         \ekd    forw-line
140         ^E              forw-line
141         ^N              forw-line
142         k               back-line
143         y               back-line
144         ^Y              back-line
145         ^K              back-line
146         ^P              back-line
147         J               forw-line-force
148         K               back-line-force
149         Y               back-line-force
150         d               forw-scroll
151         ^D              forw-scroll
152         u               back-scroll
153         ^U              back-scroll
154         \e40    forw-screen
155         f               forw-screen
156         ^F              forw-screen
157         ^V              forw-screen
158         \ekD    forw-screen
159         b               back-screen
160         ^B              back-screen
161         \eev            back-screen
162         \ekU    back-screen
163         z               forw-window
164         w               back-window
165         \ee\e40         forw-screen-force
166         F               forw-forever
167         R               repaint-flush
168         r               repaint
169         ^R              repaint
170         ^L              repaint
171         \eeu            undo-hilite
172         g               goto-line 
173         \ekh    goto-line
174         \*[Lt]          goto-line 
175         \ee\*[Lt]               goto-line 
176         p               percent 
177         %               percent 
178         \ee[            left-scroll
179         \ee]            right-scroll
180         \ee(            left-scroll
181         \ee)            right-scroll
182         {               forw-bracket {}
183         }               back-bracket {}
184         (               forw-bracket ()
185         )               back-bracket ()
186         [               forw-bracket []
187         ]               back-bracket []
188         \ee^F           forw-bracket 
189         \ee^B           back-bracket 
190         G               goto-end 
191         \ee\*[Gt]               goto-end 
192         \*[Gt]          goto-end 
193         \eke    goto-end
194         =               status 
195         ^G              status 
196         :f              status 
197         /               forw-search 
198         ?               back-search 
199         \ee/            forw-search *
200         \ee?            back-search *
201         n               repeat-search 
202         \een            repeat-search-all 
203         N               reverse-search 
204         \eeN            reverse-search-all 
205         m               set-mark 
206         '               goto-mark 
207         ^X^X            goto-mark 
208         E               examine 
209         :e              examine 
210         ^X^V            examine 
211         :n              next-file 
212         :p              prev-file 
213         t               next-tag
214         T               prev-tag
215         :x              index-file 
216         :d              remove-file
217         -               toggle-option 
218         :t              toggle-option t
219         s               toggle-option o
220         _               display-option
221         |               pipe
222         v               visual
223         !               shell
224         +               firstcmd
225         H               help
226         h               help
227         V               version
228         0               digit
229         1               digit
230         2               digit
231         3               digit
232         4               digit
233         5               digit
234         6               digit
235         7               digit
236         8               digit
237         9               digit
238         q               quit
239         Q               quit
240         :q              quit
241         :Q              quit
242         ZZ              quit
245 .SH PRECEDENCE
246 Commands specified by
247 .I lesskey
248 take precedence over the default commands.
249 A default command key may be disabled by including it in the
250 input file with the action "invalid".
251 Alternatively, a key may be defined
252 to do nothing by using the action "noaction".
253 "noaction" is similar to "invalid", but
254 .I less
255 will give an error beep for an "invalid" command,
256 but not for a "noaction" command.
257 In addition, ALL default commands may be disabled by
258 adding this control line to the input file:
260 #stop
262 This will cause all default commands to be ignored.
263 The #stop line should be the last line in that section of the file.
265 Be aware that #stop can be dangerous.
266 Since all default commands are disabled,
267 you must provide sufficient commands before the #stop line
268 to enable all necessary actions.
269 For example, failure to provide a "quit" command can lead to frustration.
271 .SH "LINE EDITING SECTION"
272 The line-editing section begins with the line:
274 #line-edit
276 This section specifies new key bindings for the line editing commands,
277 in a manner similar to the way key bindings for
278 ordinary commands are specified in the #command section.
279 The line-editing section consists of a list of keys and actions,
280 one per line as in the example below.
282 .SH EXAMPLE
283 The following input file describes the set of
284 default line-editing keys used by less:
287         #line-edit
288         \et             forw-complete
289         \e17            back-complete
290         \ee\et          back-complete
291         ^L              expand
292         ^V              literal
293         ^A              literal
294         \eel            right
295         \ekr            right
296         \eeh            left
297         \ekl            left
298         \eeb            word-left
299         \ee\ekl word-left
300         \eew            word-right
301         \ee\ekr word-right
302         \eei            insert
303         \eex            delete
304         \ekx            delete
305         \eeX            word-delete
306         \eekx           word-delete
307         \ee\eb          word-backspace
308         \ee0            home
309         \ekh            home
310         \ee$            end
311         \eke            end
312         \eek            up
313         \eku            up
314         \eej            down
318 .SH "LESS ENVIRONMENT VARIABLES"
319 The environment variable section begins with the line
321 #env
323 Following this line is a list of environment variable assignments.
324 Each line consists of an environment variable name, an equals sign (=)
325 and the value to be assigned to the environment variable.
326 White space before and after the equals sign is ignored.
327 Variables assigned in this way are visible only to
328 .I less.
329 If a variable is specified in the system environment and also in a
330 lesskey file, the value in the lesskey file takes precedence.
331 Although the lesskey file can be used to override variables set in the
332 environment, the main purpose of assigning variables in the lesskey file
333 is simply to have all
334 .I less
335 configuration information stored in one file.
337 .SH EXAMPLE
338 The following input file sets the -i option whenever
339 .I less
340 is run, and specifies the character set to be "latin1":
343         #env
344         LESS = -i
345         LESSCHARSET = latin1
349 .SH "SEE ALSO"
350 less(1)
352 .SH WARNINGS
353 It is not possible to specify special keys, such as uparrow,
354 in a keyboard-independent manner.
355 The only way to specify such keys is to specify the escape sequence
356 which a particular keyboard sends when such a key is pressed.
358 On MS-DOS and OS/2 systems, certain keys send a sequence of characters
359 which start with a NUL character (0).
360 This NUL character should be represented as \e340 in a lesskey file.
362 .SH COPYRIGHT
363 Copyright (C) 2004  Mark Nudelman
365 lesskey is part of the GNU project and is free software;
366 you can redistribute it and/or modify it
367 under the terms of the GNU General Public License as published by
368 the Free Software Foundation;
369 either version 2, or (at your option) any later version.
371 lesskey is distributed in the hope that it will be useful, but
372 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
373 or FITNESS FOR A PARTICULAR PURPOSE.
374 See the GNU General Public License for more details.
376 You should have received a copy of the GNU General Public License
377 along with lesskey; see the file COPYING.
378 If not, write to the Free Software Foundation, 59 Temple Place,
379 Suite 330, Boston, MA  02111-1307, USA.
381 .SH AUTHOR
383 Mark Nudelman \*[Lt]markn@greenwoodsoftware.com\*[Gt]
385 Send bug reports or comments to the above address or to bug-less@gnu.org.