xref: /freebsd/contrib/libedit/editrc.5 (revision d9a42747950146bf03cda7f6e25d219253f8a57a)
1.\"	$NetBSD: editrc.5,v 1.34 2022/12/06 00:59:20 uwe 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 May 22, 2016
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.Pp
46.D1 Oo Ar prog Ns Ic \&: Oc Ns Ar command Oo Ar arg ... Oc
47.Pp
48.Ar command
49is one of the
50.Xr editline 3
51builtin commands.
52Refer to
53.Sx BUILTIN COMMANDS
54for more information.
55.Pp
56.Ar prog
57is the program name string that a program defines when it calls
58.Xr el_init 3
59to set up
60.Xr editline 3 ,
61which is usually
62.Va argv Ns Li [0] .
63.Ar command
64will be executed for any program which matches
65.Ar prog .
66.Pp
67.Ar prog
68may also be a
69.Xr regex 3
70style
71regular expression, in which case
72.Ar command
73will be executed for any program that matches the regular expression.
74.Pp
75If
76.Ar prog
77is absent,
78.Ar command
79is executed for all programs.
80.Sh BUILTIN COMMANDS
81The
82.Nm editline
83library has some builtin commands, which affect the way
84that the line editing and history functions operate.
85These are based on similar named builtins present in the
86.Xr tcsh 1
87shell.
88.Pp
89The following builtin commands are available:
90.Bl -tag -width 4n
91.It Ic bind Oo Fl aeklrsv Oc Op Ar key Op Ar command
92Without options and arguments, list all bound keys and macros, and
93the editor command or input string to which each one is bound.
94If only
95.Ar key
96is supplied, show the binding for that key or macro.
97If
98.Ar key command
99is supplied, bind the editor
100.Ar command
101to that key or macro.
102.Pp
103The options are as follows:
104.Bl -tag -width 4n
105.It Fl a
106List or change key bindings in the
107.Xr vi 1
108mode alternate (command mode) key map.
109.It Fl e
110Bind all keys to the standard
111.Tn GNU
112Emacs-like bindings.
113.It Fl k
114.Ar key
115is interpreted as a symbolic arrow key name, which may be one of
116.Ic up ,
117.Ic down ,
118.Ic left
119or
120.Ic right .
121.It Fl l
122List all editor commands and a short description of each.
123.It Fl r
124Remove the binding of the key or macro
125.Ar key .
126.It Fl s
127Define a keyboard macro rather than a key binding or command macro:
128.Ar command
129is taken as a literal string and appended to the input queue whenever
130.Ar key
131is typed.
132Bound keys and macros in
133.Ar command
134are themselves reinterpreted, and this continues for ten levels of
135interpretation.
136.It Fl v
137Bind all keys to the standard
138.Xr vi 1 Ns -like
139bindings.
140.El
141.Pp
142The
143.Xr editline 7
144manual documents all editor commands and contains more information
145about macros and the input queue.
146.Pp
147.Ar key
148and
149.Ar command
150can contain control characters of the form
151.Sq Ic ^ Ns Ar character
152.Po
153e.g.\&
154.Ql ^A
155.Pc ,
156and the following backslashed escape sequences:
157.Pp
158.Bl -tag -compact -offset indent -width Ic
159.It Ic \ea
160Bell
161.It Ic \eb
162Backspace
163.It Ic \ee
164Escape
165.It Ic \ef
166Formfeed
167.It Ic \en
168Newline
169.It Ic \er
170Carriage return
171.It Ic \et
172Horizontal tab
173.It Ic \ev
174Vertical tab
175.Sm off
176.It Ic \e Ar nnn
177.Sm on
178The
179.Tn ASCII
180character corresponding to the octal number
181.Ar nnn .
182.El
183.Pp
184.Ql \e
185nullifies the special meaning of the following character,
186if it has any, notably
187.Ql \e
188and
189.Ql ^ .
190.It Ic echotc Oo Fl sv Oc Ar arg Ar ...
191Exercise terminal capabilities given in
192.Ar arg .
193If
194.Ar arg
195is
196.Ql baud ,
197.Ql cols ,
198.Ql lines ,
199.Ql rows ,
200.Ql meta ,
201or
202.Ql tabs ,
203the value of that capability is printed, with
204.Dq yes
205or
206.Dq no
207indicating that the terminal does or does not have that capability.
208.Pp
209.Fl s
210returns an empty string for non-existent capabilities, rather than
211causing an error.
212.Fl v
213causes messages to be verbose.
214.It Ic edit Op Li on No | Li off
215Enable or disable the
216.Nm editline
217functionality in a program.
218.It Ic history Li list No | Li size Ar n No | Li unique Ar n
219The
220.Ql list
221command lists all entries in the history.
222The
223.Ql size
224command sets the history size to
225.Ar n
226entries.
227The
228.Ql unique
229command controls if history should keep duplicate entries.
230If
231.Ar n
232is non zero, only keep unique history entries.
233If
234.Ar n
235is zero, then keep all entries (the default).
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 Ic \&+ Ns Ar mode Oc \
245Oo Fl Ar mode Oc Oo Ar mode Oc Oo Ar char\| Ns Ic = Ns Ar 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.Ic + Ns Ar mode
268.Pc
269or off
270.Po
271.Fl Ns Ar mode
272.Pc .
273.Fl a
274lists all tty modes in the chosen set regardless of the setting.
275With
276.Ic + Ns Ar mode ,
277.Fl Ns 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\| Ns Ic = Ns Ar value .
289If
290.Ar value
291is empty
292then the character is set to
293.Dv _POSIX_VDISABLE .
294.It Ic telltc
295List the values of all the terminal capabilities (see
296.Xr termcap 5 ) .
297.El
298.Sh ENVIRONMENT
299.Bl -tag -width Ev
300.It Ev EDITRC
301Names the default configuration file for the
302.Xr editline 3
303library.
304.El
305.Sh FILES
306.Bl -tag -width Pa
307.It Pa ~/.editrc
308Last resort user configuration file for the
309.Xr editline 3
310library if no other file is specified.
311.El
312.Sh SEE ALSO
313.Xr editline 3 ,
314.Xr regex 3 ,
315.Xr termcap 5 ,
316.Xr editline 7
317.Sh AUTHORS
318.An -nosplit
319The
320.Nm editline
321library was written by
322.An Christos Zoulas ,
323and this manual was written by
324.An Luke Mewburn ,
325with some sections inspired by
326.Xr tcsh 1 .
327