EDITLINE(3) EDITLINE(3) NAME editline - command-line editing library with history SYNOPSIS cchhaarr ** rreeaaddlliinnee((pprroommpptt)) cchhaarr **pprroommpptt;; vvooiidd aadddd__hhiissttoorryy((lliinnee)) cchhaarr **lliinnee;; DESCRIPTION _E_d_i_t_l_i_n_e is a library that provides an line-editing interface with text recall. It is intended to be compatible with the _r_e_a_d_l_i_n_e library provided by the Free Software Foundation, but much smaller. The bulk of this manual page describes the user interface. The _r_e_a_d_l_i_n_e routine returns a line of text with the trailing newline removed. The data is returned in a buffer allocated with _m_a_l_l_o_c(3), so the space should be released with _f_r_e_e(3) when the calling program is done with it. Before accepting input from the user, the specified _p_r_o_m_p_t is dis- played on the terminal. The _a_d_d___h_i_s_t_o_r_y routine makes a copy of the specified _l_i_n_e and adds it to the internal history list. 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 hold- ing 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''. 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. Most editing commands may be given a repeat count, _n, where _n is a number. To enter a repeat count, type the escape key, the number, and then the com- mand 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. The following control characters are accepted: ^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] The following escape sequences are provided. 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 The _e_d_i_t_l_i_n_e library has a small macro facility. If you type the escape key followed by an uppercase letter, _C, then the contents of the environ- ment variable ___C__ are read in as if you had typed them at the keyboard. For example, if the variable ___L__ contains the following: ^A^Kecho '^V^[[H^V^[[2J'^M 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. The _e_d_i_t_l_i_n_e library also does filename completion. Suppose the root directory has the following files in it: bin vmunix core vmunix.old If you type ``rm /v'' and then the tab key. _E_d_i_t_l_i_n_e 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: rm /v[TAB]_m_u_n_i_x.TAB_o_l_d The tab key is shown by ``[TAB]'' and the automatically-entered text is shown in italics. BUGS AND LIMITATIONS Cannot handle lines more than 80 columns. AUTHORS Simmule R. Turner and Rich $alz . Original manual page by DaviD W. Sanderson .