12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- rlfe (ReadLine Front-End) is a "universal wrapper" around readline.
- You specify an interactive program to run (typically a shell), and
- readline is used to edit input lines.
- There are other such front-ends; what distinguishes this one is that
- it monitors the state of the inferior pty, and if the inferior program
- switches its terminal to raw mode, then rlfe passes your characters
- through directly. This basically means you can run your entire
- session (including bash and terminal-mode emacs) under rlfe.
- FEATURES
- * Can use all readline commands (and history) in commands that
- read input lines in "canonical mode" - even 'cat'!
- * Automatically switches between "readline-editing mode" and "raw mode"
- depending on the terminal mode. If the inferior program invokes
- readline itself, it will do its own line editing. (The inferior
- readline will not know about rlfe, and it will have its own history.)
- You can even run programs like 'emavs -nw' and 'vi' under rlfe.
- The goal is you could leave rlfe always on without even knowing
- about it. (We're not quite there, but it works tolerably well.)
- * The input line (after any prompt) is changed to bold-face.
- INSTALL
- The usual: ./configure && make && make install
- Note so far rlfe has only been tested on GNU Linux (Fedora Core 2)
- and Mac OS X (10.3).
- This assumes readline header files and libraries are in the default
- places. If not, you can create a link named readline pointing to the
- readline sources. To link with libreadline.a and libhistory.a
- you can copy or link them, or add LDFLAGS='-/path/to/readline' to
- the make command-line.
- USAGE
- Just run it. That by default runs bash. You can run some other
- command by giving it as command-line arguments.
- There are a few tweaks: -h allows you to name the history file,
- and -s allows you to specify its size. It default to "emacs" mode,
- but if the the environment variable EDITOR is set to "vi" that
- mode is chosen.
- ISSUES
- * The mode switching depends on the terminal mode set by the inferior
- program. Thus ssh/telnet/screen-type programs will typically be in
- raw mode, so rlfe won't be much use, even if remote programs run in
- canonical mode. The work-around is to run rlfe on the remote end.
- * Echo supression and prompt recognition are somewhat fragile.
- (A protocol so that the o/s tty code can reliably communicate its
- state to rlfe could solve this problem, and the previous one.)
- * See the intro to rlfe.c for more notes.
- * Assumes a VT100-compatible terminal, though that could be generalized
- if anybody cares.
- * Requires ncurses.
- * It would be useful to integrate rlfe's logic in a terminal emulator.
- That would make it easier to reposition the edit position with a mouse,
- integrate cut-and-paste with the system clipboard, and more robustly
- handle escape sequence and multi-byte characters more robustly.
- AUTHOR
- Per Bothner <per@bothner.com>
- LICENSE
- GPL.
|