Our libedit has been diverging from the mainstream version maintained in NetBSD. As a consequence it has been difficult to do an appropriate MFV and we have been bringing only partial updates. Here we update most of the files to at least match the version available in NetBSD's snapshot of 20091228. This version was chosen because it still doesn't include wide character support (UTF-8), which involves many changes and new files. From NetBSD's logs: Dec 15 22:13:33 2006 - editline.3 el.c el.h histedit.h add EL_GETFP, and EL_SETFP. Apr 5 15:53:28 2008 - editline.3 el.c histedit.h readline.c add EL_REFRESH for the benefit of readline Sep 10 15:45:37 2008 - common.c el.c read.c refresh.c sig.c term.c term.h tty.c Allow a single process to control multiple ttys (for pthreads using _REENTRANT) using multiple EditLine objects. Jan 18 12:17:24 2009 - el.c read.c readline.c fix -Wsign-compare issues Feb 6 14:40:32 2009 - history.c Plug memory leak, from MySQL. Feb 5 19:15:44 2009 - histedit.h read.c match documentation in el_push Feb 6 13:14:37 2009 - vi.c Portability fix. Feb 12 13:39:49 2009 - readline.c term.c More fixes for existing portability stuff. Feb 15 21:24:13 2009 - el.h read.c don't restart on EINTR, instead return NULL immediately. From Anon Ymous Feb 15 21:25:01 2009 - sig.c sig.h in order for read() to return EINTR we need to use sigaction, not signal, otherwise SA_RESTART is set. Feb 15 21:55:23 2009 - chared.c chared.h common.c emacs.c filecomplete.c filecomplete.h key.c key.h read.c readline.c refresh.c search.c term.c tokenizer.c tty.c vi.c pass lint on _LP64. Feb 17 21:34:26 2009 - el.c histedit.h prompt.c prompt.h allow for a prompt argument. Feb 18 15:04:40 2009 - sig.c SA_RESTART for all signals but SIGINT. From Anon Ymous. Feb 19 15:20:22 2009 - read.c sig.c sig.h reset and redraw on sigcont. From Anon Ymous. Feb 21 23:31:56 2009 - key.c key.h readline.c vi.c more size_t stuff. Mar 10 20:46:15 2009 - editline.3 read.c make el_gets set the count to -1 on error to distinguish between EOF and error. Mar 31 17:38:27 2009 - editline.3 el.c histedit.h prompt.c prompt.h refresh.c term.c term.h Implement literal prompt sequences. Now someone can implement RL_PROMPT_START_LITERAL/RL_PROMPT_END_LITERAL :-) Mar 31 21:33:17 2009 - term.c cast to size_t to avoid sign / unsigned comparison warning. Apr 23 02:03 2009 - term.c Apply patch (requested by msaitoh in ticket #2007): Coverity CID 1668: Plug memory leak when malloc() failed.:55 2009 May 11 18:33:30 2009 - editline.3 el.c histedit.h restore binary compatibility by providing new prompt functions that take an extra literal character. May 19 21:45:14 2009 - refresh.c always scroll when we advance past bottom. From Caleb Welton cwelton at greenplum dot com. Jul 17 12:27:57 2009 - term.c - off by one in the term.h case. - make code more similar to tcsh (if we want to handle wide chars, this is needed; for now it is a no-op) Jul 22 15:56:29 2009 - el.c Move filename to the scope it is being used. From Michael Cook mcook at bbn dot com Jul 22 15:57:00 2009 - read.c Always initialize nread since it is an out param. From Michael Cook mcook at bbn dot com Jul 22 18:25:26 2009 - el.c Only need path if we have issetugid... From Anon Ymous Jul 25 21:19:23 2009 - el.c Ignore comment lines in .editrc from Jess Thrysoee Sep 7 21:24:33 2009 histedit.h history.c readline.c apply apple patches from: http://opensource.apple.com/source/libedit/libedit-11/patches/ Dec 28 21:52:43 2009 - refresh.c Fix bug where tab completion on the second or > line that caused listing ended up corrupting the display by an extra space in the beginning. Reported by Mac Chan. Dec 28 22:15:36 2009 - refresh.c term.c reduce diff with tcsh Obtained from: NetBSD Tested by: bapt, jilles and current@ MFC after: 1 week
490 lines
12 KiB
Groff
490 lines
12 KiB
Groff
.\" $NetBSD: editrc.5,v 1.24 2009/04/11 22:17:52 wiz Exp $
|
|
.\"
|
|
.\" Copyright (c) 1997-2000 The NetBSD Foundation, Inc.
|
|
.\" All rights reserved.
|
|
.\"
|
|
.\" This file was contributed to The NetBSD Foundation by Luke Mewburn.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
|
|
.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
|
.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
|
|
.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
.\" POSSIBILITY OF SUCH DAMAGE.
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.\"
|
|
.Dd October 18, 2003
|
|
.Dt EDITRC 5
|
|
.Os
|
|
.Sh NAME
|
|
.Nm editrc
|
|
.Nd configuration file for editline library
|
|
.Sh SYNOPSIS
|
|
.Nm
|
|
.Sh DESCRIPTION
|
|
The
|
|
.Nm
|
|
file defines various settings to be used by the
|
|
.Xr editline 3
|
|
library.
|
|
.Pp
|
|
The format of each line is:
|
|
.Dl [prog:]command [arg [...]]
|
|
.Pp
|
|
.Ar command
|
|
is one of the
|
|
.Xr editline 3
|
|
builtin commands.
|
|
Refer to
|
|
.Sx BUILTIN COMMANDS
|
|
for more information.
|
|
.Pp
|
|
.Ar prog
|
|
is the program name string that a program defines when it calls
|
|
.Xr el_init 3
|
|
to set up
|
|
.Xr editline 3 ,
|
|
which is usually
|
|
.Va argv[0] .
|
|
.Ar command
|
|
will be executed for any program which matches
|
|
.Ar prog .
|
|
.Pp
|
|
.Ar prog
|
|
may also be a
|
|
.Xr regex 3
|
|
style
|
|
regular expression, in which case
|
|
.Ar command
|
|
will be executed for any program that matches the regular expression.
|
|
.Pp
|
|
If
|
|
.Ar prog
|
|
is absent,
|
|
.Ar command
|
|
is executed for all programs.
|
|
.Sh BUILTIN COMMANDS
|
|
The
|
|
.Nm editline
|
|
library has some builtin commands, which affect the way
|
|
that the line editing and history functions operate.
|
|
These are based on similar named builtins present in the
|
|
.Xr tcsh 1
|
|
shell.
|
|
.Pp
|
|
The following builtin commands are available:
|
|
.Bl -tag -width 4n
|
|
.It Ic bind Oo Fl a Oc Oo Fl e Oc Oo Fl k Oc Oo Fl l Oc Oo Fl r Oc \
|
|
Oo Fl s Oc Oo Fl v Oc Oo Ar key Op Ar command Oc
|
|
Without options, list all bound keys, and the editor command to which
|
|
each is bound.
|
|
If
|
|
.Ar key
|
|
is supplied, show the bindings for
|
|
.Ar key .
|
|
If
|
|
.Ar key command
|
|
is supplied, bind
|
|
.Ar command
|
|
to
|
|
.Ar key .
|
|
Options include:
|
|
.Bl -tag -width 4n
|
|
.It Fl e
|
|
Bind all keys to the standard GNU Emacs-like bindings.
|
|
.It Fl v
|
|
Bind all keys to the standard
|
|
.Xr vi 1 Ns -like
|
|
bindings.
|
|
.It Fl a
|
|
List or change key bindings in the
|
|
.Xr vi 1
|
|
mode alternate (command mode) key map.
|
|
.It Fl k
|
|
.Ar key
|
|
is interpreted as a symbolic arrow key name, which may be one of
|
|
.Sq up ,
|
|
.Sq down ,
|
|
.Sq left
|
|
or
|
|
.Sq right .
|
|
.It Fl l
|
|
List all editor commands and a short description of each.
|
|
.It Fl r
|
|
Remove a key's binding.
|
|
.It Fl s
|
|
.Ar command
|
|
is taken as a literal string and treated as terminal input when
|
|
.Ar key
|
|
is typed.
|
|
Bound keys in
|
|
.Ar command
|
|
are themselves reinterpreted, and this continues for ten levels of
|
|
interpretation.
|
|
.El
|
|
.Pp
|
|
.Ar command
|
|
may be one of the commands documented in
|
|
.Sx "EDITOR COMMANDS"
|
|
below, or another key.
|
|
.Pp
|
|
.Ar key
|
|
and
|
|
.Ar command
|
|
can contain control characters of the form
|
|
.Sm off
|
|
.Sq No ^ Ar character
|
|
.Sm on
|
|
(e.g.\&
|
|
.Sq ^A ) ,
|
|
and the following backslashed escape sequences:
|
|
.Pp
|
|
.Bl -tag -compact -offset indent -width 4n
|
|
.It Ic \ea
|
|
Bell
|
|
.It Ic \eb
|
|
Backspace
|
|
.It Ic \ee
|
|
Escape
|
|
.It Ic \ef
|
|
Formfeed
|
|
.It Ic \en
|
|
Newline
|
|
.It Ic \er
|
|
Carriage return
|
|
.It Ic \et
|
|
Horizontal tab
|
|
.It Ic \ev
|
|
Vertical tab
|
|
.Sm off
|
|
.It Sy \e Ar nnn
|
|
.Sm on
|
|
The ASCII character corresponding to the octal number
|
|
.Ar nnn .
|
|
.El
|
|
.Pp
|
|
.Sq \e
|
|
nullifies the special meaning of the following character,
|
|
if it has any, notably
|
|
.Sq \e
|
|
and
|
|
.Sq ^ .
|
|
.It Ic echotc Oo Fl sv Oc Ar arg Ar ...
|
|
Exercise terminal capabilities given in
|
|
.Ar arg Ar ... .
|
|
If
|
|
.Ar arg
|
|
is
|
|
.Sq baud ,
|
|
.Sq cols ,
|
|
.Sq lines ,
|
|
.Sq rows ,
|
|
.Sq meta or
|
|
.Sq tabs ,
|
|
the value of that capability is printed, with
|
|
.Dq yes
|
|
or
|
|
.Dq no
|
|
indicating that the terminal does or does not have that capability.
|
|
.Pp
|
|
.Fl s
|
|
returns an empty string for non-existent capabilities, rather than
|
|
causing an error.
|
|
.Fl v
|
|
causes messages to be verbose.
|
|
.It Ic edit Op Cm on | off
|
|
Enable or disable the
|
|
.Nm editline
|
|
functionality in a program.
|
|
.It Ic history Ar list | Ar size Dv n | Ar unique Dv n
|
|
The
|
|
.Ar list
|
|
command lists all entries in the history.
|
|
The
|
|
.Ar size
|
|
command sets the history size to
|
|
.Dv n
|
|
entries.
|
|
The
|
|
.Ar unique
|
|
command controls if history should keep duplicate entries.
|
|
If
|
|
.Dv n
|
|
is non zero, only keep unique history entries.
|
|
If
|
|
.Dv n
|
|
is zero, then keep all entries (the default).
|
|
.It Ic telltc
|
|
List the values of all the terminal capabilities (see
|
|
.Xr termcap 5 ) .
|
|
.It Ic settc Ar cap Ar val
|
|
Set the terminal capability
|
|
.Ar cap
|
|
to
|
|
.Ar val ,
|
|
as defined in
|
|
.Xr termcap 5 .
|
|
No sanity checking is done.
|
|
.It Ic setty Oo Fl a Oc Oo Fl d Oc Oo Fl q Oc Oo Fl x Oc Oo Ar +mode Oc \
|
|
Oo Ar -mode Oc Oo Ar mode Oc Oo Ar char=c Oc
|
|
Control which tty modes that
|
|
.Nm
|
|
will not allow the user to change.
|
|
.Fl d ,
|
|
.Fl q
|
|
or
|
|
.Fl x
|
|
tells
|
|
.Ic setty
|
|
to act on the
|
|
.Sq edit ,
|
|
.Sq quote
|
|
or
|
|
.Sq execute
|
|
set of tty modes respectively; defaulting to
|
|
.Fl x .
|
|
.Pp
|
|
Without other arguments,
|
|
.Ic setty
|
|
lists the modes in the chosen set which are fixed on
|
|
.Pq Sq +mode
|
|
or off
|
|
.Pq Sq -mode .
|
|
.Fl a
|
|
lists all tty modes in the chosen set regardless of the setting.
|
|
With
|
|
.Ar +mode ,
|
|
.Ar -mode
|
|
or
|
|
.Ar mode ,
|
|
fixes
|
|
.Ar mode
|
|
on or off or removes control of
|
|
.Ar mode
|
|
in the chosen set.
|
|
.Pp
|
|
.Ic Setty
|
|
can also be used to set tty characters to particular values using
|
|
.Ar char=value .
|
|
If
|
|
.Ar value
|
|
is empty
|
|
then the character is set to
|
|
.Dv _POSIX_VDISABLE .
|
|
.El
|
|
.Sh EDITOR COMMANDS
|
|
The following editor commands are available for use in key bindings:
|
|
.\" Section automatically generated with makelist
|
|
.Bl -tag -width 4n
|
|
.It Ic vi-paste-next
|
|
Vi paste previous deletion to the right of the cursor.
|
|
.It Ic vi-paste-prev
|
|
Vi paste previous deletion to the left of the cursor.
|
|
.It Ic vi-prev-space-word
|
|
Vi move to the previous space delimited word.
|
|
.It Ic vi-prev-word
|
|
Vi move to the previous word.
|
|
.It Ic vi-next-space-word
|
|
Vi move to the next space delimited word.
|
|
.It Ic vi-next-word
|
|
Vi move to the next word.
|
|
.It Ic vi-change-case
|
|
Vi change case of character under the cursor and advance one character.
|
|
.It Ic vi-change-meta
|
|
Vi change prefix command.
|
|
.It Ic vi-insert-at-bol
|
|
Vi enter insert mode at the beginning of line.
|
|
.It Ic vi-replace-char
|
|
Vi replace character under the cursor with the next character typed.
|
|
.It Ic vi-replace-mode
|
|
Vi enter replace mode.
|
|
.It Ic vi-substitute-char
|
|
Vi replace character under the cursor and enter insert mode.
|
|
.It Ic vi-substitute-line
|
|
Vi substitute entire line.
|
|
.It Ic vi-change-to-eol
|
|
Vi change to end of line.
|
|
.It Ic vi-insert
|
|
Vi enter insert mode.
|
|
.It Ic vi-add
|
|
Vi enter insert mode after the cursor.
|
|
.It Ic vi-add-at-eol
|
|
Vi enter insert mode at end of line.
|
|
.It Ic vi-delete-meta
|
|
Vi delete prefix command.
|
|
.It Ic vi-end-word
|
|
Vi move to the end of the current space delimited word.
|
|
.It Ic vi-to-end-word
|
|
Vi move to the end of the current word.
|
|
.It Ic vi-undo
|
|
Vi undo last change.
|
|
.It Ic vi-command-mode
|
|
Vi enter command mode (use alternative key bindings).
|
|
.It Ic vi-zero
|
|
Vi move to the beginning of line.
|
|
.It Ic vi-delete-prev-char
|
|
Vi move to previous character (backspace).
|
|
.It Ic vi-list-or-eof
|
|
Vi list choices for completion or indicate end of file if empty line.
|
|
.It Ic vi-kill-line-prev
|
|
Vi cut from beginning of line to cursor.
|
|
.It Ic vi-search-prev
|
|
Vi search history previous.
|
|
.It Ic vi-search-next
|
|
Vi search history next.
|
|
.It Ic vi-repeat-search-next
|
|
Vi repeat current search in the same search direction.
|
|
.It Ic vi-repeat-search-prev
|
|
Vi repeat current search in the opposite search direction.
|
|
.It Ic vi-next-char
|
|
Vi move to the character specified next.
|
|
.It Ic vi-prev-char
|
|
Vi move to the character specified previous.
|
|
.It Ic vi-to-next-char
|
|
Vi move up to the character specified next.
|
|
.It Ic vi-to-prev-char
|
|
Vi move up to the character specified previous.
|
|
.It Ic vi-repeat-next-char
|
|
Vi repeat current character search in the same search direction.
|
|
.It Ic vi-repeat-prev-char
|
|
Vi repeat current character search in the opposite search direction.
|
|
.It Ic em-delete-or-list
|
|
Delete character under cursor or list completions if at end of line.
|
|
.It Ic em-delete-next-word
|
|
Cut from cursor to end of current word.
|
|
.It Ic em-yank
|
|
Paste cut buffer at cursor position.
|
|
.It Ic em-kill-line
|
|
Cut the entire line and save in cut buffer.
|
|
.It Ic em-kill-region
|
|
Cut area between mark and cursor and save in cut buffer.
|
|
.It Ic em-copy-region
|
|
Copy area between mark and cursor to cut buffer.
|
|
.It Ic em-gosmacs-transpose
|
|
Exchange the two characters before the cursor.
|
|
.It Ic em-next-word
|
|
Move next to end of current word.
|
|
.It Ic em-upper-case
|
|
Uppercase the characters from cursor to end of current word.
|
|
.It Ic em-capitol-case
|
|
Capitalize the characters from cursor to end of current word.
|
|
.It Ic em-lower-case
|
|
Lowercase the characters from cursor to end of current word.
|
|
.It Ic em-set-mark
|
|
Set the mark at cursor.
|
|
.It Ic em-exchange-mark
|
|
Exchange the cursor and mark.
|
|
.It Ic em-universal-argument
|
|
Universal argument (argument times 4).
|
|
.It Ic em-meta-next
|
|
Add 8th bit to next character typed.
|
|
.It Ic em-toggle-overwrite
|
|
Switch from insert to overwrite mode or vice versa.
|
|
.It Ic em-copy-prev-word
|
|
Copy current word to cursor.
|
|
.It Ic em-inc-search-next
|
|
Emacs incremental next search.
|
|
.It Ic em-inc-search-prev
|
|
Emacs incremental reverse search.
|
|
.It Ic ed-end-of-file
|
|
Indicate end of file.
|
|
.It Ic ed-insert
|
|
Add character to the line.
|
|
.It Ic ed-delete-prev-word
|
|
Delete from beginning of current word to cursor.
|
|
.It Ic ed-delete-next-char
|
|
Delete character under cursor.
|
|
.It Ic ed-kill-line
|
|
Cut to the end of line.
|
|
.It Ic ed-move-to-end
|
|
Move cursor to the end of line.
|
|
.It Ic ed-move-to-beg
|
|
Move cursor to the beginning of line.
|
|
.It Ic ed-transpose-chars
|
|
Exchange the character to the left of the cursor with the one under it.
|
|
.It Ic ed-next-char
|
|
Move to the right one character.
|
|
.It Ic ed-prev-word
|
|
Move to the beginning of the current word.
|
|
.It Ic ed-prev-char
|
|
Move to the left one character.
|
|
.It Ic ed-quoted-insert
|
|
Add the next character typed verbatim.
|
|
.It Ic ed-digit
|
|
Adds to argument or enters a digit.
|
|
.It Ic ed-argument-digit
|
|
Digit that starts argument.
|
|
.It Ic ed-unassigned
|
|
Indicates unbound character.
|
|
.It Ic ed-tty-sigint
|
|
Tty interrupt character.
|
|
.It Ic ed-tty-dsusp
|
|
Tty delayed suspend character.
|
|
.It Ic ed-tty-flush-output
|
|
Tty flush output characters.
|
|
.It Ic ed-tty-sigquit
|
|
Tty quit character.
|
|
.It Ic ed-tty-sigtstp
|
|
Tty suspend character.
|
|
.It Ic ed-tty-stop-output
|
|
Tty disallow output characters.
|
|
.It Ic ed-tty-start-output
|
|
Tty allow output characters.
|
|
.It Ic ed-newline
|
|
Execute command.
|
|
.It Ic ed-delete-prev-char
|
|
Delete the character to the left of the cursor.
|
|
.It Ic ed-clear-screen
|
|
Clear screen leaving current line at the top.
|
|
.It Ic ed-redisplay
|
|
Redisplay everything.
|
|
.It Ic ed-start-over
|
|
Erase current line and start from scratch.
|
|
.It Ic ed-sequence-lead-in
|
|
First character in a bound sequence.
|
|
.It Ic ed-prev-history
|
|
Move to the previous history line.
|
|
.It Ic ed-next-history
|
|
Move to the next history line.
|
|
.It Ic ed-search-prev-history
|
|
Search previous in history for a line matching the current.
|
|
.It Ic ed-search-next-history
|
|
Search next in history for a line matching the current.
|
|
.It Ic ed-prev-line
|
|
Move up one line.
|
|
.It Ic ed-next-line
|
|
Move down one line.
|
|
.It Ic ed-command
|
|
Editline extended command.
|
|
.El
|
|
.\" End of section automatically generated with makelist
|
|
.Sh SEE ALSO
|
|
.Xr editline 3 ,
|
|
.Xr regex 3 ,
|
|
.Xr termcap 5
|
|
.Sh AUTHORS
|
|
.An -nosplit
|
|
The
|
|
.Nm editline
|
|
library was written by
|
|
.An Christos Zoulas ,
|
|
and this manual was written by
|
|
.An Luke Mewburn ,
|
|
with some sections inspired by
|
|
.Xr tcsh 1 .
|