170 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			170 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
.\" $Revision$
 | 
						|
.TH EDITLINE 3
 | 
						|
.SH NAME
 | 
						|
editline \- command-line editing library with history
 | 
						|
.SH SYNOPSIS
 | 
						|
.ft B
 | 
						|
char *readline(char *\fIprompt\fP)
 | 
						|
.ft P
 | 
						|
.SH DESCRIPTION
 | 
						|
.I Editline
 | 
						|
is a library that provides an line-editing interface with text recall.
 | 
						|
It is intended to be compatible with the
 | 
						|
.I readline
 | 
						|
library provided by the Free Software Foundation, but much smaller.
 | 
						|
The bulk of this manual page describes the user interface.
 | 
						|
.PP
 | 
						|
The
 | 
						|
.I readline
 | 
						|
routine returns a line of text with the trailing newline removed.
 | 
						|
The data is returned in a buffer allocated with
 | 
						|
.IR malloc (3),
 | 
						|
so the space should be released with
 | 
						|
.IR free (3)
 | 
						|
when the calling program is done with it.
 | 
						|
Before accepting input from the user, the specified
 | 
						|
.I prompt
 | 
						|
is displayed on the terminal.
 | 
						|
.PP
 | 
						|
Each line returned is copied to the internal history list, unless it happens
 | 
						|
to be equal to the previous line.
 | 
						|
.SS "User Interface"
 | 
						|
A program that uses this library provides a simple emacs-like editing
 | 
						|
interface to its users.
 | 
						|
A line may be edited before it is sent to the calling program by typing either
 | 
						|
control characters or escape sequences.
 | 
						|
A control character, shown as a caret followed by a letter, is typed by
 | 
						|
holding down the ``control'' key while the letter is typed.
 | 
						|
For example, ``^A'' is a control-A.
 | 
						|
An escape sequence is entered by typing the ``escape'' key followed by one or
 | 
						|
more characters.
 | 
						|
The escape key is abbreviated as ``ESC.''
 | 
						|
Note that unlike control keys, case matters in escape sequences; ``ESC\ F''
 | 
						|
is not the same as ``ESC\ f''.
 | 
						|
.PP
 | 
						|
An editing command may be typed anywhere on the line, not just at the
 | 
						|
beginning.
 | 
						|
In addition, a return may also be typed anywhere on the line, not just at
 | 
						|
the end.
 | 
						|
.PP
 | 
						|
Most editing commands may be given a repeat count,
 | 
						|
.IR n ,
 | 
						|
where
 | 
						|
.I n
 | 
						|
is a number.
 | 
						|
To enter a repeat count, type the escape key, the number, and then
 | 
						|
the command to execute.
 | 
						|
For example, ``ESC\ 4\ ^f'' moves forward four characters.
 | 
						|
If a command may be given a repeat count then the text ``[n]'' is given at the
 | 
						|
end of its description.
 | 
						|
.PP
 | 
						|
The following control characters are accepted:
 | 
						|
.RS
 | 
						|
.nf
 | 
						|
.ta \w'ESC DEL  'u
 | 
						|
^A	Move to the beginning of the line
 | 
						|
^B	Move left (backwards) [n]
 | 
						|
^D	Delete character [n]
 | 
						|
^E	Move to end of line
 | 
						|
^F	Move right (forwards) [n]
 | 
						|
^G	Ring the bell
 | 
						|
^H	Delete character before cursor (backspace key) [n]
 | 
						|
^I	Complete filename (tab key); see below
 | 
						|
^J	Done with line (return key)
 | 
						|
^K	Kill to end of line (or column [n])
 | 
						|
^L	Redisplay line
 | 
						|
^M	Done with line (alternate return key)
 | 
						|
^N	Get next line from history [n]
 | 
						|
^P	Get previous line from history [n]
 | 
						|
^R	Search backward (forward if [n]) through history for text;
 | 
						|
\&	must start line if text begins with an uparrow
 | 
						|
^T	Transpose characters
 | 
						|
^V	Insert next character, even if it is an edit command
 | 
						|
^W	Wipe to the mark
 | 
						|
^X^X	Exchange current location and mark
 | 
						|
^Y	Yank back last killed text
 | 
						|
^[	Start an escape sequence (escape key)
 | 
						|
^]c	Move forward to next character ``c''
 | 
						|
^?	Delete character before cursor (delete key) [n]
 | 
						|
.fi
 | 
						|
.RE
 | 
						|
.PP
 | 
						|
The following escape sequences are provided.
 | 
						|
.RS
 | 
						|
.nf
 | 
						|
.ta \w'ESC DEL  'u
 | 
						|
ESC\ ^H	Delete previous word (backspace key) [n]
 | 
						|
ESC\ DEL	Delete previous word (delete key) [n]
 | 
						|
ESC\ SP	Set the mark (space key); see ^X^X and ^Y above
 | 
						|
ESC\ \.	Get the last (or [n]'th) word from previous line
 | 
						|
ESC\ \?	Show possible completions; see below
 | 
						|
ESC\ <	Move to start of history
 | 
						|
ESC\ >	Move to end of history
 | 
						|
ESC\ b	Move backward a word [n]
 | 
						|
ESC\ d	Delete word under cursor [n]
 | 
						|
ESC\ f	Move forward a word [n]
 | 
						|
ESC\ l	Make word lowercase [n]
 | 
						|
ESC\ m	Toggle if 8bit chars display normally or with ``M\-'' prefix
 | 
						|
ESC\ u	Make word uppercase [n]
 | 
						|
ESC\ y	Yank back last killed text
 | 
						|
ESC\ v	Show library version
 | 
						|
ESC\ w	Make area up to mark yankable
 | 
						|
ESC\ nn	Set repeat count to the number nn
 | 
						|
ESC\ C	Read from environment variable ``_C_'', where C is
 | 
						|
\&	an uppercase letter
 | 
						|
.fi
 | 
						|
.RE
 | 
						|
.PP
 | 
						|
The
 | 
						|
.I editline
 | 
						|
library has a small macro facility.
 | 
						|
If you type the escape key followed by an uppercase letter,
 | 
						|
.IR C ,
 | 
						|
then the contents of the environment variable
 | 
						|
.I _C_
 | 
						|
are read in as if you had typed them at the keyboard.
 | 
						|
For example, if the variable
 | 
						|
.I _L_
 | 
						|
contains the following:
 | 
						|
.RS
 | 
						|
^A^Kecho '^V^[[H^V^[[2J'^M
 | 
						|
.RE
 | 
						|
Then typing ``ESC L'' will move to the beginning of the line, kill the
 | 
						|
entire line, enter the echo command needed to clear the terminal (if your
 | 
						|
terminal is like a VT-100), and send the line back to the shell.
 | 
						|
.PP
 | 
						|
The
 | 
						|
.I editline
 | 
						|
library also does filename completion.
 | 
						|
Suppose the root directory has the following files in it:
 | 
						|
.RS
 | 
						|
.nf
 | 
						|
.ta \w'core   'u
 | 
						|
bin	vmunix
 | 
						|
core	vmunix.old
 | 
						|
.fi
 | 
						|
.RE
 | 
						|
If you type ``rm\ /v'' and then the tab key.
 | 
						|
.I Editline
 | 
						|
will then finish off as much of the name as possible by adding ``munix''.
 | 
						|
Because the name is not unique, it will then beep.
 | 
						|
If you type the escape key and a question mark, it will display the
 | 
						|
two choices.
 | 
						|
If you then type a period and a tab, the library will finish off the filename
 | 
						|
for you:
 | 
						|
.RS
 | 
						|
.nf
 | 
						|
.RI "rm /v[TAB]" munix .TAB old
 | 
						|
.fi
 | 
						|
.RE
 | 
						|
The tab key is shown by ``[TAB]'' and the automatically-entered text
 | 
						|
is shown in italics.
 | 
						|
.SH "BUGS AND LIMITATIONS"
 | 
						|
Doesn't know how to handle multiple lines.
 | 
						|
.SH AUTHORS
 | 
						|
Simmule R. Turner <uunet.uu.net!capitol!sysgo!simmy>
 | 
						|
and Rich $alz <rsalz@osf.org>.
 | 
						|
Original manual page by DaviD W. Sanderson <dws@ssec.wisc.edu>.
 | 
						|
 | 
						|
.\" $PchId: editline.3,v 1.3 1996/02/22 21:18:51 philip Exp $
 |