1.\" $NetBSD: editrc.5,v 1.24 2009/04/11 22:17:52 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: stable/10/lib/libedit/editrc.5 245325 2013-01-12 09:08:37Z joel $ 30.\" 31.Dd October 18, 2003 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.Dl [prog:]command [arg [...]] 48.Pp 49.Ar command 50is one of the 51.Xr editline 3 52builtin commands. 53Refer to 54.Sx BUILTIN COMMANDS 55for more information. 56.Pp 57.Ar prog 58is the program name string that a program defines when it calls 59.Xr el_init 3 60to set up 61.Xr editline 3 , 62which is usually 63.Va argv[0] . 64.Ar command 65will be executed for any program which matches 66.Ar prog . 67.Pp 68.Ar prog 69may also be a 70.Xr regex 3 71style 72regular expression, in which case 73.Ar command 74will be executed for any program that matches the regular expression. 75.Pp 76If 77.Ar prog 78is absent, 79.Ar command 80is executed for all programs. 81.Sh BUILTIN COMMANDS 82The 83.Nm editline 84library has some builtin commands, which affect the way 85that the line editing and history functions operate. 86These are based on similar named builtins present in the 87.Xr tcsh 1 88shell. 89.Pp 90The following builtin commands are available: 91.Bl -tag -width 4n 92.It Ic bind Oo Fl a Oc Oo Fl e Oc Oo Fl k Oc Oo Fl l Oc Oo Fl r Oc \ 93Oo Fl s Oc Oo Fl v Oc Oo Ar key Oo Ar command Oc Oc 94Without options, list all bound keys, and the editor command to which 95each is bound. 96If 97.Ar key 98is supplied, show the bindings for 99.Ar key . 100If 101.Ar key command 102is supplied, bind 103.Ar command 104to 105.Ar key . 106Options include: 107.Bl -tag -width 4n 108.It Fl e 109Bind all keys to the standard GNU Emacs-like bindings. 110.It Fl v 111Bind all keys to the standard 112.Xr vi 1 Ns -like 113bindings. 114.It Fl a 115List or change key bindings in the 116.Xr vi 1 117mode alternate (command mode) key map. 118.It Fl k 119.Ar key 120is interpreted as a symbolic arrow key name, which may be one of 121.Sq up , 122.Sq down , 123.Sq left 124or 125.Sq right . 126.It Fl l 127List all editor commands and a short description of each. 128.It Fl r 129Remove a key's binding. 130.It Fl s 131.Ar command 132is taken as a literal string and treated as terminal input when 133.Ar key 134is typed. 135Bound keys in 136.Ar command 137are themselves reinterpreted, and this continues for ten levels of 138interpretation. 139.El 140.Pp 141.Ar command 142may be one of the commands documented in 143.Sx "EDITOR COMMANDS" 144below, or another key. 145.Pp 146.Ar key 147and 148.Ar command 149can contain control characters of the form 150.Sm off 151.Sq No ^ Ar character 152.Sm on 153(e.g.\& 154.Sq ^A ) , 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 or 198.Sq tabs , 199the value of that capability is printed, with 200.Dq yes 201or 202.Dq no 203indicating that the terminal does or does not have that capability. 204.Pp 205.Fl s 206returns an empty string for non-existent capabilities, rather than 207causing an error. 208.Fl v 209causes messages to be verbose. 210.It Ic edit Op Cm on | off 211Enable or disable the 212.Nm editline 213functionality in a program. 214.It Ic history Ar list | Ar size Dv n | Ar unique Dv n 215The 216.Ar list 217command lists all entries in the history. 218The 219.Ar size 220command sets the history size to 221.Dv n 222entries. 223The 224.Ar unique 225command controls if history should keep duplicate entries. 226If 227.Dv n 228is non zero, only keep unique history entries. 229If 230.Dv n 231is zero, then keep all entries (the default). 232.It Ic telltc 233List the values of all the terminal capabilities (see 234.Xr termcap 5 ) . 235.It Ic settc Ar cap Ar val 236Set the terminal capability 237.Ar cap 238to 239.Ar val , 240as defined in 241.Xr termcap 5 . 242No sanity checking is done. 243.It Ic setty Oo Fl a Oc Oo Fl d Oc Oo Fl q Oc Oo Fl x Oc Oo Ar +mode Oc \ 244Oo Ar -mode Oc Oo Ar mode Oc Oo Ar char=c Oc 245Control which tty modes that 246.Nm 247will not allow the user to change. 248.Fl d , 249.Fl q 250or 251.Fl x 252tells 253.Ic setty 254to act on the 255.Sq edit , 256.Sq quote 257or 258.Sq execute 259set of tty modes respectively; defaulting to 260.Fl x . 261.Pp 262Without other arguments, 263.Ic setty 264lists the modes in the chosen set which are fixed on 265.Pq Sq +mode 266or off 267.Pq Sq -mode . 268.Fl a 269lists all tty modes in the chosen set regardless of the setting. 270With 271.Ar +mode , 272.Ar -mode 273or 274.Ar mode , 275fixes 276.Ar mode 277on or off or removes control of 278.Ar mode 279in the chosen set. 280.Pp 281.Ic Setty 282can also be used to set tty characters to particular values using 283.Ar char=value . 284If 285.Ar value 286is empty 287then the character is set to 288.Dv _POSIX_VDISABLE . 289.El 290.Sh EDITOR COMMANDS 291The following editor commands are available for use in key bindings: 292.\" Section automatically generated with makelist 293.Bl -tag -width 4n 294.It Ic vi-paste-next 295Vi paste previous deletion to the right of the cursor. 296.It Ic vi-paste-prev 297Vi paste previous deletion to the left of the cursor. 298.It Ic vi-prev-space-word 299Vi move to the previous space delimited word. 300.It Ic vi-prev-word 301Vi move to the previous word. 302.It Ic vi-next-space-word 303Vi move to the next space delimited word. 304.It Ic vi-next-word 305Vi move to the next word. 306.It Ic vi-change-case 307Vi change case of character under the cursor and advance one character. 308.It Ic vi-change-meta 309Vi change prefix command. 310.It Ic vi-insert-at-bol 311Vi enter insert mode at the beginning of line. 312.It Ic vi-replace-char 313Vi replace character under the cursor with the next character typed. 314.It Ic vi-replace-mode 315Vi enter replace mode. 316.It Ic vi-substitute-char 317Vi replace character under the cursor and enter insert mode. 318.It Ic vi-substitute-line 319Vi substitute entire line. 320.It Ic vi-change-to-eol 321Vi change to end of line. 322.It Ic vi-insert 323Vi enter insert mode. 324.It Ic vi-add 325Vi enter insert mode after the cursor. 326.It Ic vi-add-at-eol 327Vi enter insert mode at end of line. 328.It Ic vi-delete-meta 329Vi delete prefix command. 330.It Ic vi-end-word 331Vi move to the end of the current space delimited word. 332.It Ic vi-to-end-word 333Vi move to the end of the current word. 334.It Ic vi-undo 335Vi undo last change. 336.It Ic vi-command-mode 337Vi enter command mode (use alternative key bindings). 338.It Ic vi-zero 339Vi move to the beginning of line. 340.It Ic vi-delete-prev-char 341Vi move to previous character (backspace). 342.It Ic vi-list-or-eof 343Vi list choices for completion or indicate end of file if empty line. 344.It Ic vi-kill-line-prev 345Vi cut from beginning of line to cursor. 346.It Ic vi-search-prev 347Vi search history previous. 348.It Ic vi-search-next 349Vi search history next. 350.It Ic vi-repeat-search-next 351Vi repeat current search in the same search direction. 352.It Ic vi-repeat-search-prev 353Vi repeat current search in the opposite search direction. 354.It Ic vi-next-char 355Vi move to the character specified next. 356.It Ic vi-prev-char 357Vi move to the character specified previous. 358.It Ic vi-to-next-char 359Vi move up to the character specified next. 360.It Ic vi-to-prev-char 361Vi move up to the character specified previous. 362.It Ic vi-repeat-next-char 363Vi repeat current character search in the same search direction. 364.It Ic vi-repeat-prev-char 365Vi repeat current character search in the opposite search direction. 366.It Ic em-delete-or-list 367Delete character under cursor or list completions if at end of line. 368.It Ic em-delete-next-word 369Cut from cursor to end of current word. 370.It Ic em-yank 371Paste cut buffer at cursor position. 372.It Ic em-kill-line 373Cut the entire line and save in cut buffer. 374.It Ic em-kill-region 375Cut area between mark and cursor and save in cut buffer. 376.It Ic em-copy-region 377Copy area between mark and cursor to cut buffer. 378.It Ic em-gosmacs-transpose 379Exchange the two characters before the cursor. 380.It Ic em-next-word 381Move next to end of current word. 382.It Ic em-upper-case 383Uppercase the characters from cursor to end of current word. 384.It Ic em-capitol-case 385Capitalize the characters from cursor to end of current word. 386.It Ic em-lower-case 387Lowercase the characters from cursor to end of current word. 388.It Ic em-set-mark 389Set the mark at cursor. 390.It Ic em-exchange-mark 391Exchange the cursor and mark. 392.It Ic em-universal-argument 393Universal argument (argument times 4). 394.It Ic em-meta-next 395Add 8th bit to next character typed. 396.It Ic em-toggle-overwrite 397Switch from insert to overwrite mode or vice versa. 398.It Ic em-copy-prev-word 399Copy current word to cursor. 400.It Ic em-inc-search-next 401Emacs incremental next search. 402.It Ic em-inc-search-prev 403Emacs incremental reverse search. 404.It Ic ed-end-of-file 405Indicate end of file. 406.It Ic ed-insert 407Add character to the line. 408.It Ic ed-delete-prev-word 409Delete from beginning of current word to cursor. 410.It Ic ed-delete-next-char 411Delete character under cursor. 412.It Ic ed-kill-line 413Cut to the end of line. 414.It Ic ed-move-to-end 415Move cursor to the end of line. 416.It Ic ed-move-to-beg 417Move cursor to the beginning of line. 418.It Ic ed-transpose-chars 419Exchange the character to the left of the cursor with the one under it. 420.It Ic ed-next-char 421Move to the right one character. 422.It Ic ed-prev-word 423Move to the beginning of the current word. 424.It Ic ed-prev-char 425Move to the left one character. 426.It Ic ed-quoted-insert 427Add the next character typed verbatim. 428.It Ic ed-digit 429Adds to argument or enters a digit. 430.It Ic ed-argument-digit 431Digit that starts argument. 432.It Ic ed-unassigned 433Indicates unbound character. 434.It Ic ed-tty-sigint 435Tty interrupt character. 436.It Ic ed-tty-dsusp 437Tty delayed suspend character. 438.It Ic ed-tty-flush-output 439Tty flush output characters. 440.It Ic ed-tty-sigquit 441Tty quit character. 442.It Ic ed-tty-sigtstp 443Tty suspend character. 444.It Ic ed-tty-stop-output 445Tty disallow output characters. 446.It Ic ed-tty-start-output 447Tty allow output characters. 448.It Ic ed-newline 449Execute command. 450.It Ic ed-delete-prev-char 451Delete the character to the left of the cursor. 452.It Ic ed-clear-screen 453Clear screen leaving current line at the top. 454.It Ic ed-redisplay 455Redisplay everything. 456.It Ic ed-start-over 457Erase current line and start from scratch. 458.It Ic ed-sequence-lead-in 459First character in a bound sequence. 460.It Ic ed-prev-history 461Move to the previous history line. 462.It Ic ed-next-history 463Move to the next history line. 464.It Ic ed-search-prev-history 465Search previous in history for a line matching the current. 466.It Ic ed-search-next-history 467Search next in history for a line matching the current. 468.It Ic ed-prev-line 469Move up one line. 470.It Ic ed-next-line 471Move down one line. 472.It Ic ed-command 473Editline extended command. 474.El 475.\" End of section automatically generated with makelist 476.Sh FILES 477.Bl -tag -width "~/.editrcXXX" 478.It Pa ~/.editrc 479User configuration file for the 480.Xr editline 3 481library. 482.El 483.Sh SEE ALSO 484.Xr editline 3 , 485.Xr regex 3 , 486.Xr termcap 5 487.Sh AUTHORS 488.An -nosplit 489The 490.Nm editline 491library was written by 492.An Christos Zoulas , 493and this manual was written by 494.An Luke Mewburn , 495with some sections inspired by 496.Xr tcsh 1 . 497