xref: /freebsd-12.1/lib/libedit/editrc.5 (revision c1a66a97)
1.\"	$NetBSD: editrc.5,v 1.29 2014/12/25 13:39:41 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.\" $FreeBSD$
30.\"
31.Dd December 25, 2014
32.Dt EDITRC 5
33.Os
34.Sh NAME
35.Nm editrc
36.Nd configuration file for editline library
37.Sh SYNOPSIS
38.Nm
39.Sh DESCRIPTION
40The
41.Nm
42file defines various settings to be used by the
43.Xr editline 3
44library.
45.Pp
46The format of each line is:
47.Pp
48.Dl [prog:]command [arg ...]
49.Pp
50.Ar command
51is one of the
52.Xr editline 3
53builtin commands.
54Refer to
55.Sx BUILTIN COMMANDS
56for more information.
57.Pp
58.Ar prog
59is the program name string that a program defines when it calls
60.Xr el_init 3
61to set up
62.Xr editline 3 ,
63which is usually
64.Va argv[0] .
65.Ar command
66will be executed for any program which matches
67.Ar prog .
68.Pp
69.Ar prog
70may also be a
71.Xr regex 3
72style
73regular expression, in which case
74.Ar command
75will be executed for any program that matches the regular expression.
76.Pp
77If
78.Ar prog
79is absent,
80.Ar command
81is executed for all programs.
82.Sh BUILTIN COMMANDS
83The
84.Nm editline
85library has some builtin commands, which affect the way
86that the line editing and history functions operate.
87These are based on similar named builtins present in the
88.Xr tcsh 1
89shell.
90.Pp
91The following builtin commands are available:
92.Bl -tag -width 4n
93.It Ic bind Oo Fl a Oc Oo Fl e Oc Oo Fl k Oc Oo Fl l Oc Oo Fl r Oc \
94Oo Fl s Oc Oo Fl v Oc Oo Ar key Oo Ar command Oc Oc
95Without options, list all bound keys, and the editor command to which
96each is bound.
97If
98.Ar key
99is supplied, show the bindings for
100.Ar key .
101If
102.Ar key command
103is supplied, bind
104.Ar command
105to
106.Ar key .
107Options include:
108.Bl -tag -width 4n
109.It Fl a
110List or change key bindings in the
111.Xr vi 1
112mode alternate (command mode) key map.
113.It Fl e
114Bind all keys to the standard GNU Emacs-like bindings.
115.It Fl k
116.Ar key
117is interpreted as a symbolic arrow key name, which may be one of
118.Sq up ,
119.Sq down ,
120.Sq left
121or
122.Sq right .
123.It Fl l
124List all editor commands and a short description of each.
125.It Fl r
126Remove a key's binding.
127.It Fl s
128.Ar command
129is taken as a literal string and treated as terminal input when
130.Ar key
131is typed.
132Bound keys 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
142.Ar command
143may be one of the commands documented in
144.Sx "EDITOR COMMANDS"
145below, or another key.
146.Pp
147.Ar key
148and
149.Ar command
150can contain control characters of the form
151.Sm off
152.Sq No ^ Ar character
153.Sm on
154.Po
155e.g.\&
156.Sq ^A
157.Pc ,
158and the following backslashed escape sequences:
159.Pp
160.Bl -tag -compact -offset indent -width 4n
161.It Ic \ea
162Bell
163.It Ic \eb
164Backspace
165.It Ic \ee
166Escape
167.It Ic \ef
168Formfeed
169.It Ic \en
170Newline
171.It Ic \er
172Carriage return
173.It Ic \et
174Horizontal tab
175.It Ic \ev
176Vertical tab
177.Sm off
178.It Sy \e Ar nnn
179.Sm on
180The ASCII character corresponding to the octal number
181.Ar nnn .
182.El
183.Pp
184.Sq \e
185nullifies the special meaning of the following character,
186if it has any, notably
187.Sq \e
188and
189.Sq ^ .
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.Sq baud ,
197.Sq cols ,
198.Sq lines ,
199.Sq rows ,
200.Sq meta ,
201or
202.Sq 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 | Li off
215Enable or disable the
216.Nm editline
217functionality in a program.
218.It Ic history Ar list | Ar size Dv n | Ar unique Dv n
219The
220.Ar list
221command lists all entries in the history.
222The
223.Ar size
224command sets the history size to
225.Dv n
226entries.
227The
228.Ar unique
229command controls if history should keep duplicate entries.
230If
231.Dv n
232is non zero, only keep unique history entries.
233If
234.Dv 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 Ar +mode Oc \
245Oo Ar -mode Oc Oo Ar mode Oc Oo Ar char=c Oc
246Control which tty modes that
247.Nm
248will not 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.It Ic telltc
295List the values of all the terminal capabilities (see
296.Xr termcap 5 ) .
297.El
298.Sh EDITOR COMMANDS
299The following editor commands are available for use in key bindings:
300.\" Section automatically generated with makelist
301.Bl -tag -width 4n
302.It Ic vi-paste-next
303Vi paste previous deletion to the right of the cursor.
304.It Ic vi-paste-prev
305Vi paste previous deletion to the left of the cursor.
306.It Ic vi-prev-big-word
307Vi move to the previous space delimited word.
308.It Ic vi-prev-word
309Vi move to the previous word.
310.It Ic vi-next-big-word
311Vi move to the next space delimited word.
312.It Ic vi-next-word
313Vi move to the next word.
314.It Ic vi-change-case
315Vi change case of character under the cursor and advance one character.
316.It Ic vi-change-meta
317Vi change prefix command.
318.It Ic vi-insert-at-bol
319Vi enter insert mode at the beginning of line.
320.It Ic vi-replace-char
321Vi replace character under the cursor with the next character typed.
322.It Ic vi-replace-mode
323Vi enter replace mode.
324.It Ic vi-substitute-char
325Vi replace character under the cursor and enter insert mode.
326.It Ic vi-substitute-line
327Vi substitute entire line.
328.It Ic vi-change-to-eol
329Vi change to end of line.
330.It Ic vi-insert
331Vi enter insert mode.
332.It Ic vi-add
333Vi enter insert mode after the cursor.
334.It Ic vi-add-at-eol
335Vi enter insert mode at end of line.
336.It Ic vi-delete-meta
337Vi delete prefix command.
338.It Ic vi-end-big-word
339Vi move to the end of the current space delimited word.
340.It Ic vi-end-word
341Vi move to the end of the current word.
342.It Ic vi-undo
343Vi undo last change.
344.It Ic vi-command-mode
345Vi enter command mode (use alternative key bindings).
346.It Ic vi-zero
347Vi move to the beginning of line.
348.It Ic vi-delete-prev-char
349Vi move to previous character (backspace).
350.It Ic vi-list-or-eof
351Vi list choices for completion or indicate end of file if empty line.
352.It Ic vi-kill-line-prev
353Vi cut from beginning of line to cursor.
354.It Ic vi-search-prev
355Vi search history previous.
356.It Ic vi-search-next
357Vi search history next.
358.It Ic vi-repeat-search-next
359Vi repeat current search in the same search direction.
360.It Ic vi-repeat-search-prev
361Vi repeat current search in the opposite search direction.
362.It Ic vi-next-char
363Vi move to the character specified next.
364.It Ic vi-prev-char
365Vi move to the character specified previous.
366.It Ic vi-to-next-char
367Vi move up to the character specified next.
368.It Ic vi-to-prev-char
369Vi move up to the character specified previous.
370.It Ic vi-repeat-next-char
371Vi repeat current character search in the same search direction.
372.It Ic vi-repeat-prev-char
373Vi repeat current character search in the opposite search direction.
374.It Ic vi-match
375Vi go to matching () {} or [].
376.It Ic vi-undo-line
377Vi undo all changes to line.
378.It Ic vi-to-column
379Vi go to specified column.
380.It Ic vi-yank-end
381Vi yank to end of line.
382.It Ic vi-yank
383Vi yank.
384.It Ic vi-comment-out
385Vi comment out current command.
386.It Ic vi-alias
387Vi include shell alias.
388.It Ic vi-to-history-line
389Vi go to specified history file line..
390.It Ic vi-histedit
391Vi edit history line with vi.
392.It Ic vi-history-word
393Vi append word from previous input line.
394.It Ic vi-redo
395Vi redo last non-motion command.
396.It Ic em-delete-or-list
397Delete character under cursor or list completions if at end of line.
398.It Ic em-delete-next-word
399Cut from cursor to end of current word.
400.It Ic em-yank
401Paste cut buffer at cursor position.
402.It Ic em-kill-line
403Cut the entire line and save in cut buffer.
404.It Ic em-kill-region
405Cut area between mark and cursor and save in cut buffer.
406.It Ic em-copy-region
407Copy area between mark and cursor to cut buffer.
408.It Ic em-gosmacs-transpose
409Exchange the two characters before the cursor.
410.It Ic em-next-word
411Move next to end of current word.
412.It Ic em-upper-case
413Uppercase the characters from cursor to end of current word.
414.It Ic em-capitol-case
415Capitalize the characters from cursor to end of current word.
416.It Ic em-lower-case
417Lowercase the characters from cursor to end of current word.
418.It Ic em-set-mark
419Set the mark at cursor.
420.It Ic em-exchange-mark
421Exchange the cursor and mark.
422.It Ic em-universal-argument
423Universal argument (argument times 4).
424.It Ic em-meta-next
425Add 8th bit to next character typed.
426.It Ic em-toggle-overwrite
427Switch from insert to overwrite mode or vice versa.
428.It Ic em-copy-prev-word
429Copy current word to cursor.
430.It Ic em-inc-search-next
431Emacs incremental next search.
432.It Ic em-inc-search-prev
433Emacs incremental reverse search.
434.It Ic ed-end-of-file
435Indicate end of file.
436.It Ic ed-insert
437Add character to the line.
438.It Ic ed-delete-prev-word
439Delete from beginning of current word to cursor.
440.It Ic ed-delete-next-char
441Delete character under cursor.
442.It Ic ed-kill-line
443Cut to the end of line.
444.It Ic ed-move-to-end
445Move cursor to the end of line.
446.It Ic ed-move-to-beg
447Move cursor to the beginning of line.
448.It Ic ed-transpose-chars
449Exchange the character to the left of the cursor with the one under it.
450.It Ic ed-next-char
451Move to the right one character.
452.It Ic ed-prev-word
453Move to the beginning of the current word.
454.It Ic ed-prev-char
455Move to the left one character.
456.It Ic ed-quoted-insert
457Add the next character typed verbatim.
458.It Ic ed-digit
459Adds to argument or enters a digit.
460.It Ic ed-argument-digit
461Digit that starts argument.
462.It Ic ed-unassigned
463Indicates unbound character.
464.It Ic ed-tty-sigint
465Tty interrupt character.
466.It Ic ed-tty-dsusp
467Tty delayed suspend character.
468.It Ic ed-tty-flush-output
469Tty flush output characters.
470.It Ic ed-tty-sigquit
471Tty quit character.
472.It Ic ed-tty-sigtstp
473Tty suspend character.
474.It Ic ed-tty-stop-output
475Tty disallow output characters.
476.It Ic ed-tty-start-output
477Tty allow output characters.
478.It Ic ed-newline
479Execute command.
480.It Ic ed-delete-prev-char
481Delete the character to the left of the cursor.
482.It Ic ed-clear-screen
483Clear screen leaving current line at the top.
484.It Ic ed-redisplay
485Redisplay everything.
486.It Ic ed-start-over
487Erase current line and start from scratch.
488.It Ic ed-sequence-lead-in
489First character in a bound sequence.
490.It Ic ed-prev-history
491Move to the previous history line.
492.It Ic ed-next-history
493Move to the next history line.
494.It Ic ed-search-prev-history
495Search previous in history for a line matching the current.
496.It Ic ed-search-next-history
497Search next in history for a line matching the current.
498.It Ic ed-prev-line
499Move up one line.
500.It Ic ed-next-line
501Move down one line.
502.It Ic ed-command
503Editline extended command.
504.El
505.\" End of section automatically generated with makelist
506.Sh FILES
507.Bl -tag -width "~/.editrcXXX"
508.It Pa ~/.editrc
509User configuration file for the
510.Xr editline 3
511library.
512.El
513.Sh SEE ALSO
514.Xr editline 3 ,
515.Xr regex 3 ,
516.Xr termcap 5
517.Sh AUTHORS
518.An -nosplit
519The
520.Nm editline
521library was written by
522.An Christos Zoulas ,
523and this manual was written by
524.An Luke Mewburn ,
525with some sections inspired by
526.Xr tcsh 1 .
527