| .\" $Revision: 1.1 $ | |
| .TH EDITLINE 3 | |
| .SH NAME | |
| editline \- command-line editing library with history | |
| .SH SYNOPSIS | |
| .nf | |
| .B "char *" | |
| .B "readline(prompt)" | |
| .B " char *prompt;" | |
| .B "void" | |
| .B "add_history(line)" | |
| .B " char *line;" | |
| .fi | |
| .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 | |
| The | |
| .I add_history | |
| routine makes a copy of the specified | |
| .I line | |
| and adds it to the internal history list. | |
| .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\ 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" | |
| Cannot handle lines more than 80 columns. | |
| .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>. |