File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / readline / examples / rlfe / README
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Jul 30 08:16:46 2014 UTC (10 years, 8 months ago) by misho
Branches: readline, MAIN
CVS tags: v8_2p0, v8_1p0, v6_3p10_cross, v6_3p10, v6_3, p6, HEAD
readline 6.3

    1: rlfe (ReadLine Front-End) is a "universal wrapper" around readline.
    2: You specify an interactive program to run (typically a shell), and
    3: readline is used to edit input lines.
    4: 
    5: There are other such front-ends; what distinguishes this one is that
    6: it monitors the state of the inferior pty, and if the inferior program
    7: switches its terminal to raw mode, then rlfe passes your characters
    8: through directly.  This basically means you can run your entire
    9: session (including bash and terminal-mode emacs) under rlfe.
   10: 
   11: FEATURES
   12: 
   13: * Can use all readline commands (and history) in commands that
   14: read input lines in "canonical mode" - even 'cat'!
   15: 
   16: * Automatically switches between "readline-editing mode" and "raw mode"
   17: depending on the terminal mode.  If the inferior program invokes
   18: readline itself, it will do its own line editing.  (The inferior
   19: readline will not know about rlfe, and it will have its own history.)
   20: You can even run programs like 'emavs -nw' and 'vi' under rlfe.
   21: The goal is you could leave rlfe always on without even knowing
   22: about it.  (We're not quite there, but it works tolerably well.)
   23: 
   24: * The input line (after any prompt) is changed to bold-face.
   25: 
   26: INSTALL
   27: 
   28: The usual: ./configure && make && make install
   29: 
   30: Note so far rlfe has only been tested on GNU Linux (Fedora Core 2)
   31: and Mac OS X (10.3).
   32: 
   33: This assumes readline header files and libraries are in the default
   34: places.  If not, you can create a link named readline pointing to the
   35: readline sources.  To link with libreadline.a and libhistory.a
   36: you can copy or link them, or add LDFLAGS='-/path/to/readline' to
   37: the make command-line.
   38: 
   39: USAGE
   40: 
   41: Just run it.  That by default runs bash.  You can run some other
   42: command by giving it as command-line arguments.
   43: 
   44: There are a few tweaks:  -h allows you to name the history file,
   45: and -s allows you to specify its size.  It default to "emacs" mode,
   46: but if the the environment variable EDITOR is set to "vi" that
   47: mode is chosen.
   48: 
   49: ISSUES
   50: 
   51: * The mode switching depends on the terminal mode set by the inferior
   52: program.  Thus ssh/telnet/screen-type programs will typically be in
   53: raw mode, so rlfe won't be much use, even if remote programs run in
   54: canonical mode.  The work-around is to run rlfe on the remote end.
   55: 
   56: * Echo supression and prompt recognition are somewhat fragile.
   57: (A protocol so that the o/s tty code can reliably communicate its
   58: state to rlfe could solve this problem, and the previous one.)
   59: 
   60: * See the intro to rlfe.c for more notes.
   61: 
   62: * Assumes a VT100-compatible terminal, though that could be generalized
   63: if anybody cares.
   64: 
   65: * Requires ncurses.
   66: 
   67: * It would be useful to integrate rlfe's logic in a terminal emulator.
   68: That would make it easier to reposition the edit position with a mouse,
   69: integrate cut-and-paste with the system clipboard, and more robustly
   70: handle escape sequence and multi-byte characters more robustly.
   71: 
   72: AUTHOR
   73: 
   74: Per Bothner <per@bothner.com>
   75: 
   76: LICENSE
   77: 
   78: GPL.

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>