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