blob: 643f459b4ee2fa336f3eadc57f62f7855e0b8b96 [file] [log] [blame]
Todd Fialad32685d2013-10-31 14:03:34 -07001.\" $NetBSD: editrc.5,v 1.27 2013/01/10 16:03:42 wiz Exp $
2.\"
3.\" Copyright (c) 1997-2000 The NetBSD Foundation, Inc.
4.\" All rights reserved.
5.\"
6.\" This file was contributed to The NetBSD Foundation by Luke Mewburn.
7.\"
8.\" Redistribution and use in source and binary forms, with or without
9.\" modification, are permitted provided that the following conditions
10.\" are met:
11.\" 1. Redistributions of source code must retain the above copyright
12.\" notice, this list of conditions and the following disclaimer.
13.\" 2. Redistributions in binary form must reproduce the above copyright
14.\" notice, this list of conditions and the following disclaimer in the
15.\" documentation and/or other materials provided with the distribution.
16.\"
17.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
18.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
19.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
21.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27.\" POSSIBILITY OF SUCH DAMAGE.
28.\"
29.Dd January 10, 2013
30.Dt EDITRC 5
31.Os
32.Sh NAME
33.Nm editrc
34.Nd configuration file for editline library
35.Sh SYNOPSIS
36.Nm
37.Sh DESCRIPTION
38The
39.Nm
40file defines various settings to be used by the
41.Xr editline 3
42library.
43.Pp
44The format of each line is:
45.Dl [prog:]command [arg [...]]
46.Pp
47.Ar command
48is one of the
49.Xr editline 3
50builtin commands.
51Refer to
52.Sx BUILTIN COMMANDS
53for more information.
54.Pp
55.Ar prog
56is the program name string that a program defines when it calls
57.Xr el_init 3
58to set up
59.Xr editline 3 ,
60which is usually
61.Va argv[0] .
62.Ar command
63will be executed for any program which matches
64.Ar prog .
65.Pp
66.Ar prog
67may also be a
68.Xr regex 3
69style
70regular expression, in which case
71.Ar command
72will be executed for any program that matches the regular expression.
73.Pp
74If
75.Ar prog
76is absent,
77.Ar command
78is executed for all programs.
79.Sh BUILTIN COMMANDS
80The
81.Nm editline
82library has some builtin commands, which affect the way
83that the line editing and history functions operate.
84These are based on similar named builtins present in the
85.Xr tcsh 1
86shell.
87.Pp
88The following builtin commands are available:
89.Bl -tag -width 4n
90.It Ic bind Oo Fl a Oc Oo Fl e Oc Oo Fl k Oc Oo Fl l Oc Oo Fl r Oc \
91Oo Fl s Oc Oo Fl v Oc Oo Ar key Oo Ar command Oc Oc
92Without options, list all bound keys, and the editor command to which
93each is bound.
94If
95.Ar key
96is supplied, show the bindings for
97.Ar key .
98If
99.Ar key command
100is supplied, bind
101.Ar command
102to
103.Ar key .
104Options include:
105.Bl -tag -width 4n
106.It Fl e
107Bind all keys to the standard GNU Emacs-like bindings.
108.It Fl v
109Bind all keys to the standard
110.Xr vi 1 Ns -like
111bindings.
112.It Fl a
113List or change key bindings in the
114.Xr vi 1
115mode alternate (command mode) key map.
116.It Fl k
117.Ar key
118is interpreted as a symbolic arrow key name, which may be one of
119.Sq up ,
120.Sq down ,
121.Sq left
122or
123.Sq right .
124.It Fl l
125List all editor commands and a short description of each.
126.It Fl r
127Remove a key's binding.
128.It Fl s
129.Ar command
130is taken as a literal string and treated as terminal input when
131.Ar key
132is typed.
133Bound keys in
134.Ar command
135are themselves reinterpreted, and this continues for ten levels of
136interpretation.
137.El
138.Pp
139.Ar command
140may be one of the commands documented in
141.Sx "EDITOR COMMANDS"
142below, or another key.
143.Pp
144.Ar key
145and
146.Ar command
147can contain control characters of the form
148.Sm off
149.Sq No ^ Ar character
150.Sm on
151.Po
152e.g.
153.Sq ^A
154.Pc ,
155and the following backslashed escape sequences:
156.Pp
157.Bl -tag -compact -offset indent -width 4n
158.It Ic \ea
159Bell
160.It Ic \eb
161Backspace
162.It Ic \ee
163Escape
164.It Ic \ef
165Formfeed
166.It Ic \en
167Newline
168.It Ic \er
169Carriage return
170.It Ic \et
171Horizontal tab
172.It Ic \ev
173Vertical tab
174.Sm off
175.It Sy \e Ar nnn
176.Sm on
177The ASCII character corresponding to the octal number
178.Ar nnn .
179.El
180.Pp
181.Sq \e
182nullifies the special meaning of the following character,
183if it has any, notably
184.Sq \e
185and
186.Sq ^ .
187.It Ic echotc Oo Fl sv Oc Ar arg Ar ...
188Exercise terminal capabilities given in
189.Ar arg Ar ... .
190If
191.Ar arg
192is
193.Sq baud ,
194.Sq cols ,
195.Sq lines ,
196.Sq rows ,
197.Sq meta ,
198or
199.Sq tabs ,
200the value of that capability is printed, with
201.Dq yes
202or
203.Dq no
204indicating that the terminal does or does not have that capability.
205.Pp
206.Fl s
207returns an empty string for non-existent capabilities, rather than
208causing an error.
209.Fl v
210causes messages to be verbose.
211.It Ic edit Op Li on | Li off
212Enable or disable the
213.Nm editline
214functionality in a program.
215.It Ic history Ar list | Ar size Dv n | Ar unique Dv n
216The
217.Ar list
218command lists all entries in the history.
219The
220.Ar size
221command sets the history size to
222.Dv n
223entries.
224The
225.Ar unique
226command controls if history should keep duplicate entries.
227If
228.Dv n
229is non zero, only keep unique history entries.
230If
231.Dv n
232is zero, then keep all entries (the default).
233.It Ic telltc
234List the values of all the terminal capabilities (see
235.Xr termcap 5 ) .
236.It Ic settc Ar cap Ar val
237Set the terminal capability
238.Ar cap
239to
240.Ar val ,
241as defined in
242.Xr termcap 5 .
243No sanity checking is done.
244.It Ic setty Oo Fl a Oc Oo Fl d Oc Oo Fl q Oc Oo Fl x Oc Oo Ar +mode Oc \
245Oo Ar -mode Oc Oo Ar mode Oc Oo Ar char=c Oc
246Control which tty modes that
247.Nm
248won't allow the user to change.
249.Fl d ,
250.Fl q
251or
252.Fl x
253tells
254.Ic setty
255to act on the
256.Sq edit ,
257.Sq quote
258or
259.Sq execute
260set of tty modes respectively; defaulting to
261.Fl x .
262.Pp
263Without other arguments,
264.Ic setty
265lists the modes in the chosen set which are fixed on
266.Po
267.Sq +mode
268.Pc
269or off
270.Po
271.Sq -mode
272.Pc .
273.Fl a
274lists all tty modes in the chosen set regardless of the setting.
275With
276.Ar +mode ,
277.Ar -mode
278or
279.Ar mode ,
280fixes
281.Ar mode
282on or off or removes control of
283.Ar mode
284in the chosen set.
285.Pp
286.Ic Setty
287can also be used to set tty characters to particular values using
288.Ar char=value .
289If
290.Ar value
291is empty
292then the character is set to
293.Dv _POSIX_VDISABLE .
294.El
295.Sh EDITOR COMMANDS
296The following editor commands are available for use in key bindings:
297.\" Section automatically generated with makelist
298.Bl -tag -width 4n
299.It Ic vi-paste-next
300Vi paste previous deletion to the right of the cursor.
301.It Ic vi-paste-prev
302Vi paste previous deletion to the left of the cursor.
303.It Ic vi-prev-space-word
304Vi move to the previous space delimited word.
305.It Ic vi-prev-word
306Vi move to the previous word.
307.It Ic vi-next-space-word
308Vi move to the next space delimited word.
309.It Ic vi-next-word
310Vi move to the next word.
311.It Ic vi-change-case
312Vi change case of character under the cursor and advance one character.
313.It Ic vi-change-meta
314Vi change prefix command.
315.It Ic vi-insert-at-bol
316Vi enter insert mode at the beginning of line.
317.It Ic vi-replace-char
318Vi replace character under the cursor with the next character typed.
319.It Ic vi-replace-mode
320Vi enter replace mode.
321.It Ic vi-substitute-char
322Vi replace character under the cursor and enter insert mode.
323.It Ic vi-substitute-line
324Vi substitute entire line.
325.It Ic vi-change-to-eol
326Vi change to end of line.
327.It Ic vi-insert
328Vi enter insert mode.
329.It Ic vi-add
330Vi enter insert mode after the cursor.
331.It Ic vi-add-at-eol
332Vi enter insert mode at end of line.
333.It Ic vi-delete-meta
334Vi delete prefix command.
335.It Ic vi-end-word
336Vi move to the end of the current space delimited word.
337.It Ic vi-to-end-word
338Vi move to the end of the current word.
339.It Ic vi-undo
340Vi undo last change.
341.It Ic vi-command-mode
342Vi enter command mode (use alternative key bindings).
343.It Ic vi-zero
344Vi move to the beginning of line.
345.It Ic vi-delete-prev-char
346Vi move to previous character (backspace).
347.It Ic vi-list-or-eof
348Vi list choices for completion or indicate end of file if empty line.
349.It Ic vi-kill-line-prev
350Vi cut from beginning of line to cursor.
351.It Ic vi-search-prev
352Vi search history previous.
353.It Ic vi-search-next
354Vi search history next.
355.It Ic vi-repeat-search-next
356Vi repeat current search in the same search direction.
357.It Ic vi-repeat-search-prev
358Vi repeat current search in the opposite search direction.
359.It Ic vi-next-char
360Vi move to the character specified next.
361.It Ic vi-prev-char
362Vi move to the character specified previous.
363.It Ic vi-to-next-char
364Vi move up to the character specified next.
365.It Ic vi-to-prev-char
366Vi move up to the character specified previous.
367.It Ic vi-repeat-next-char
368Vi repeat current character search in the same search direction.
369.It Ic vi-repeat-prev-char
370Vi repeat current character search in the opposite search direction.
371.It Ic em-delete-or-list
372Delete character under cursor or list completions if at end of line.
373.It Ic em-delete-next-word
374Cut from cursor to end of current word.
375.It Ic em-yank
376Paste cut buffer at cursor position.
377.It Ic em-kill-line
378Cut the entire line and save in cut buffer.
379.It Ic em-kill-region
380Cut area between mark and cursor and save in cut buffer.
381.It Ic em-copy-region
382Copy area between mark and cursor to cut buffer.
383.It Ic em-gosmacs-transpose
384Exchange the two characters before the cursor.
385.It Ic em-next-word
386Move next to end of current word.
387.It Ic em-upper-case
388Uppercase the characters from cursor to end of current word.
389.It Ic em-capitol-case
390Capitalize the characters from cursor to end of current word.
391.It Ic em-lower-case
392Lowercase the characters from cursor to end of current word.
393.It Ic em-set-mark
394Set the mark at cursor.
395.It Ic em-exchange-mark
396Exchange the cursor and mark.
397.It Ic em-universal-argument
398Universal argument (argument times 4).
399.It Ic em-meta-next
400Add 8th bit to next character typed.
401.It Ic em-toggle-overwrite
402Switch from insert to overwrite mode or vice versa.
403.It Ic em-copy-prev-word
404Copy current word to cursor.
405.It Ic em-inc-search-next
406Emacs incremental next search.
407.It Ic em-inc-search-prev
408Emacs incremental reverse search.
409.It Ic ed-end-of-file
410Indicate end of file.
411.It Ic ed-insert
412Add character to the line.
413.It Ic ed-delete-prev-word
414Delete from beginning of current word to cursor.
415.It Ic ed-delete-next-char
416Delete character under cursor.
417.It Ic ed-kill-line
418Cut to the end of line.
419.It Ic ed-move-to-end
420Move cursor to the end of line.
421.It Ic ed-move-to-beg
422Move cursor to the beginning of line.
423.It Ic ed-transpose-chars
424Exchange the character to the left of the cursor with the one under it.
425.It Ic ed-next-char
426Move to the right one character.
427.It Ic ed-prev-word
428Move to the beginning of the current word.
429.It Ic ed-prev-char
430Move to the left one character.
431.It Ic ed-quoted-insert
432Add the next character typed verbatim.
433.It Ic ed-digit
434Adds to argument or enters a digit.
435.It Ic ed-argument-digit
436Digit that starts argument.
437.It Ic ed-unassigned
438Indicates unbound character.
439.It Ic ed-tty-sigint
440Tty interrupt character.
441.It Ic ed-tty-dsusp
442Tty delayed suspend character.
443.It Ic ed-tty-flush-output
444Tty flush output characters.
445.It Ic ed-tty-sigquit
446Tty quit character.
447.It Ic ed-tty-sigtstp
448Tty suspend character.
449.It Ic ed-tty-stop-output
450Tty disallow output characters.
451.It Ic ed-tty-start-output
452Tty allow output characters.
453.It Ic ed-newline
454Execute command.
455.It Ic ed-delete-prev-char
456Delete the character to the left of the cursor.
457.It Ic ed-clear-screen
458Clear screen leaving current line at the top.
459.It Ic ed-redisplay
460Redisplay everything.
461.It Ic ed-start-over
462Erase current line and start from scratch.
463.It Ic ed-sequence-lead-in
464First character in a bound sequence.
465.It Ic ed-prev-history
466Move to the previous history line.
467.It Ic ed-next-history
468Move to the next history line.
469.It Ic ed-search-prev-history
470Search previous in history for a line matching the current.
471.It Ic ed-search-next-history
472Search next in history for a line matching the current.
473.It Ic ed-prev-line
474Move up one line.
475.It Ic ed-next-line
476Move down one line.
477.It Ic ed-command
478Editline extended command.
479.El
480.\" End of section automatically generated with makelist
481.Sh FILES
482.Bl -tag -width "~/.editrcXXX"
483.It Pa ~/.editrc
484User configuration file for the
485.Xr editline 3
486library.
487.El
488.Sh SEE ALSO
489.Xr editline 3 ,
490.Xr regex 3 ,
491.Xr termcap 5
492.Sh AUTHORS
493The
494.Nm editline
495library was written by Christos Zoulas,
496and this manual was written by Luke Mewburn,
497with some sections inspired by
498.Xr tcsh 1 .