Annotation of embedaddon/readline/examples/rlfe/README, revision 1.1.1.1

1.1       misho       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>