1.\" $NetBSD: editrc.5,v 1.33 2017/06/27 01:22:58 kre 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.Dl [prog:]command [arg ...] 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[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 GNU Emacs-like bindings. 111.It Fl k 112.Ar key 113is interpreted as a symbolic arrow key name, which may be one of 114.Sq up , 115.Sq down , 116.Sq left 117or 118.Sq right . 119.It Fl l 120List all editor commands and a short description of each. 121.It Fl r 122Remove the binding of the key or macro 123.Ar key . 124.It Fl s 125Define a keyboard macro rather than a key binding or command macro: 126.Ar command 127is taken as a literal string and appended to the input queue whenever 128.Ar key 129is typed. 130Bound keys and macros in 131.Ar command 132are themselves reinterpreted, and this continues for ten levels of 133interpretation. 134.It Fl v 135Bind all keys to the standard 136.Xr vi 1 Ns -like 137bindings. 138.El 139.Pp 140The 141.Xr editline 7 142manual documents all editor commands and contains more information 143about macros and the input queue. 144.Pp 145.Ar key 146and 147.Ar command 148can contain control characters of the form 149.Sm off 150.Sq No ^ Ar character 151.Sm on 152.Po 153e.g.\& 154.Sq ^A 155.Pc , 156and the following backslashed escape sequences: 157.Pp 158.Bl -tag -compact -offset indent -width 4n 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 Sy \e Ar nnn 177.Sm on 178The ASCII character corresponding to the octal number 179.Ar nnn . 180.El 181.Pp 182.Sq \e 183nullifies the special meaning of the following character, 184if it has any, notably 185.Sq \e 186and 187.Sq ^ . 188.It Ic echotc Oo Fl sv Oc Ar arg Ar ... 189Exercise terminal capabilities given in 190.Ar arg ... . 191If 192.Ar arg 193is 194.Sq baud , 195.Sq cols , 196.Sq lines , 197.Sq rows , 198.Sq meta , 199or 200.Sq tabs , 201the value of that capability is printed, with 202.Dq yes 203or 204.Dq no 205indicating that the terminal does or does not have that capability. 206.Pp 207.Fl s 208returns an empty string for non-existent capabilities, rather than 209causing an error. 210.Fl v 211causes messages to be verbose. 212.It Ic edit Op Li on | Li off 213Enable or disable the 214.Nm editline 215functionality in a program. 216.It Ic history Ar list | Ar size Dv n | Ar unique Dv n 217The 218.Ar list 219command lists all entries in the history. 220The 221.Ar size 222command sets the history size to 223.Dv n 224entries. 225The 226.Ar unique 227command controls if history should keep duplicate entries. 228If 229.Dv n 230is non zero, only keep unique history entries. 231If 232.Dv n 233is zero, then keep all entries (the default). 234.It Ic settc Ar cap Ar val 235Set the terminal capability 236.Ar cap 237to 238.Ar val , 239as defined in 240.Xr termcap 5 . 241No sanity checking is done. 242.It Ic setty Oo Fl a Oc Oo Fl d Oc Oo Fl q Oc Oo Fl x Oc Oo Ar +mode Oc \ 243Oo Ar -mode Oc Oo Ar mode Oc Oo Ar char=c Oc 244Control which tty modes that 245.Nm 246won't allow the user to change. 247.Fl d , 248.Fl q 249or 250.Fl x 251tells 252.Ic setty 253to act on the 254.Sq edit , 255.Sq quote 256or 257.Sq execute 258set of tty modes respectively; defaulting to 259.Fl x . 260.Pp 261Without other arguments, 262.Ic setty 263lists the modes in the chosen set which are fixed on 264.Po 265.Sq +mode 266.Pc 267or off 268.Po 269.Sq -mode 270.Pc . 271.Fl a 272lists all tty modes in the chosen set regardless of the setting. 273With 274.Ar +mode , 275.Ar -mode 276or 277.Ar mode , 278fixes 279.Ar mode 280on or off or removes control of 281.Ar mode 282in the chosen set. 283.Pp 284.Ic Setty 285can also be used to set tty characters to particular values using 286.Ar char=value . 287If 288.Ar value 289is empty 290then the character is set to 291.Dv _POSIX_VDISABLE . 292.It Ic telltc 293List the values of all the terminal capabilities (see 294.Xr termcap 5 ) . 295.El 296.Sh ENVIRONMENT 297.Bl -tag -width "~/.editrcXXX" 298.It Ev EDITRC 299Names the default configuration file for the 300.Xr editline 3 301library. 302.El 303.Sh FILES 304.Bl -tag -width "~/.editrcXXX" 305.It Pa ~/.editrc 306Last resort, if no other file is specified, 307user configuration file for the 308.Xr editline 3 309library. 310.El 311.Sh SEE ALSO 312.Xr editline 3 , 313.Xr regex 3 , 314.Xr termcap 5 , 315.Xr editline 7 316.Sh AUTHORS 317.An -nosplit 318The 319.Nm editline 320library was written by 321.An Christos Zoulas , 322and this manual was written by 323.An Luke Mewburn , 324with some sections inspired by 325.Xr tcsh 1 . 326