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