


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 <uunet.uu.net!capitol!sysgo!simmy> and Rich $alz
  <rsalz@osf.org>.  Original manual page by DaviD W. Sanderson
  <dws@ssec.wisc.edu>.






























































