Provided by: rlwrap_0.41-1build1_amd64 bug

NAME

       rlwrap - readline wrapper

SYNOPSIS

       rlwrap [rlwrap-options] command ...

DESCRIPTION

       rlwrap  runs the specified command, intercepting user input in order to provide readline's
       line editing, persistent history and completion.

       rlwrap tries to be completely transparent - you  (or  your  shell)  shouldn't  notice  any
       difference  between  command and rlwrap command - except the added readline functionality,
       of course.  This should even hold true when  you  are  re-directing,  piping  and  sending
       signals from and to command, or when command manipulates its terminal settings.

       There  are  many options to add (programmable) completion, handle multi-line input, colour
       and re-write prompts. If you don't need them (and you probably don't), you  can  skip  the
       rest of this manpage.

OPTIONS

       -a, --always-readline [password_prompt]
              Always  remain  in "readline mode", regardless of command's terminal settings.  Use
              this option if you want to use rlwrap with commands that already use readline.  NB:
              With  this option, rlwrap will echo (and save) passwords, unless you give command's
              password prompt as an argument.  The argument is optional;  if  given,  it  has  to
              directly follow the option  without an intervening space.

              On  a  linux  machine  you  can  use  the  -N (--no-children) option to prevent the
              wrapping of pagers and editors called from command; this should make them much more
              usable

              Many commands that need --always-readline may also need -t dumb to prevent terminal
              control  sequences  from  confusing  rlwrap   (although   this   will   annoy   the
              above-mentioned pagers and editors)

       -A, --ansi-colour-aware
              Prompts  that  use  colour will confuse rlwrap, especially at the end of long input
              lines. This option will make rlwrap better behaved in such cases.   If  the  prompt
              contains  anything  fancier  than  ANSI colour codes, this option may actually make
              things worse.

       -b, --break-chars list_of_characters
              Consider   the   specified   characters   word-breaking   (whitespace   is   always
              word-breaking).  This  determines what is considered a "word", both when completing
              and when building a completion  word  list  from  files  specified  by  -f  options
              following  (not  preceding!)  it.  Default list (){}[],'+-=&^%$#@"";|\ Unless -c is
              specified, / and . (period) are included in the default list.

       -c, --complete-filenames
              Complete filenames (filename completion is always case-sensitive, even with the  -i
              option) When doing this, rlwrap keeps track of commands working directory.

       -C, --command-name command_name|N
              Use  command_name  instead  of  command  to  determine  the  names  of  history and
              completion files, and to  initialise  readline  (as  specified  in  ~/.inputrc).  A
              numeric  argument N > 0 means: use the Nth argument counting backwards from the end
              of the argument list

       -D, --history-no-dupes n
              How agressively to weed out duplicate entries from the input history.  If  n  =  0,
              all inputs are kept in the history list, if n = 1 (this is the default) consecutive
              duplicates are dropped from the list, while  n  =  2  will  make  rlwrap  drop  all
              previous occurrences of the current input from the list.

       -e, --extra-char-after-completion char
              By  default,  rlwrap  appends  a space after any inserted completion text. Use this
              option to change this to '' (don't insert anything) or some other character.

       -f, --file file
              Split file into words and add them to the completion word list. This option can  be
              given  more  than once, and adds to the default completion list in  $RLWRAP_HOME or
              /usr/share/rlwrap/completions.

       -g, --forget-matching regexp
              Forget (i.e. drop from history list) all input lines that match  the  POSIX  1003.2
              regular  expression regexp.  The match is always case-insensitive. regexp may be an
              ordinary string. For more about regular expressions, see  regex (7)

       -h, --help
              Print a short help message.

       -H, --history-filename file
              Read command history  from file (and write it back there if --histsize >= 0)

       -i, --case-insensitive
              Ignore case when completing  (filename  completion  remains  case-sensitive).  This
              option has to come before any -f options.

       -I, --pass-sigint-as-sigterm
              Send a TERM signal to command when an INT is received (e.g. when you press CTRL-C).

       -l, --logfile file
              When  in  readline  mode, append command's output (including echo'ed user input) to
              file (creating file when it doesn't exist).

       -n, --no-warnings
              Don't print warnings.

       -N, --no-children
              (linux only) Don't rlwrap command's children: whenever rlwrap notices that  command
              is  waiting  for  one of its children, it switches to direct mode, handing down all
              keypresses immediately.  With this option commands that need --always-readline  can
              call editors and pagers and still be usable.

       -m, --multi-line [newline_substitute]
              Enable  multi-line  input  using  a "newline substitute" character sequence (" \ ",
              [space-backslash-space] by default). Newline substitutes are translated to newlines
              before  sending  the  input to command.  With this option, you can call an external
              editor $RLWRAP_EDITOR on the (expanded) current input with  the  rlwrap_call_editor
              key  (CTRL-^  by  default)  The  argument is optional; if given, it has to directly
              follow the option  without an intervening space.

       -M, --multi-line-ext .ext
              Call multi-line-editor on temporary files with filename extension .ext (useful  for
              e.g. automatic syntax colouring)

       -o, --one-shot
              Send an EOF to command after accepting the first line of input

       -O, --only-cook regexp
              Only ever "cook" prompts that match regexp

       -p, --prompt-colour [colour_name|Colour_name|colour_spec]
              Use  one  of  the  colour  names  black,  red,  green,  yellow,  blue, cyan, purple
              (=magenta) or white, or an  ANSI-conformant  <colour_spec>  to  colour  any  prompt
              displayed  by  command.  An  uppercase colour name (Yellow or YELLOW ) gives a bold
              prompt.  Prompts that already contain (colour)  escape  sequences  or  one  of  the
              readline  "ignore  markers"  (ASCII  0x01  and  0x02) are not coloured. This option
              implies --ansi-colour-aware.  colour spec has the form <attr>;<fg>[;<bg>]  Example:
              -p'1;31' will give a bold red prompt on the current background (this is the default
              when no argument is given). Google for 'ANSI color'  to  learn  more  about  colour
              codes.   The  argument  is optional; if given, it has to directly follow the option
              without an intervening space.

       -P, --pre-given text
              Start rlwrap with  text in  its  edit  buffer  (this  will  automatically  set  the
              --always-readline option).

       -q, --quote-characters list_of_characters
              Assume  that  the  given  characters act as quotes, e.g. when matching parentheses.
              Take care to escape the list properly for your  shell  (example:  -q  "\"'",  which
              happens to be the default, or -q "\"" which will be better for Lisp users)

       -r, --remember
              Put all words seen on in- and output on the completion list.

       -R, --renice
              Make  rlwrap  nicer  than  command  (cf  nice  (1)).  This  may prevent rlwrap from
              interrupting command to display a prompt when command  is  still  "thinking"  about
              what to output next.

       -s, --histsize N
              Limit  the history list to N entries, truncating the history file (default: 300). A
              negative size -N means the same as N, but treats the history file as read-only.

       -S, --substitute-prompt prompt
              Substitute the specified prompt for   command's  own  prompt.  Mainly  useful  when
              command doesn't have a prompt.

       -t, --set-term-name name
              Set  command's TERM to name. Programs that confuse rlwrap with fancy screen control
              codes can sometimes be tamed by specifying -t dumb

       -v, --version
              Print rlwrap version.

       -w, --wait-before-prompt timeout
              In order to determine if  command's last output is a prompt, rlwrap  waits  timeout
              millisecs  after  receiving it.  Only when no more output has arrived, it is cooked
              (coloured, filtered and/or replaced by a substitute  prompt)  and  displayed  as  a
              prompt.   Before  this the prompt is displayed "uncooked". Most users won't notice,
              but heavy cookers can prepend the timeout with a minus  sign,  making  rlwrap  hold
              back  the  prompt  until  it  has  been  cooked ("patient mode"). This will prevent
              flashing of the prompt, but it will also interfere with long output lines and  make
              switches from direct to readline mode less reliable. Default timeout: 40 ms

       -W, --polling
              EXPERIMENTAL: Wake up every timeout millisecs, where timeout is the same as for the
              -w (--wait-before-prompt) option, 40 ms by default.  This  is  used  to  sense  the
              slave's  interrupt  character and ISIG flag and to adjust stdin's terminal settings
              accordingly, even before you press a key. Try this option  e.g.  when  CTRL-C  acts
              differently on  command  with, and without, rlwrap.

       -z, --filter filter
              Use  a  filter  to  change rlwrap's behaviour. A filter can be used to keep certain
              input out of the history, to change the  prompt,  to  implement  simple  macros  or
              programmable   completion..   rlwrap   comes   with  a  special  perl  module  (cf.
              RlwrapFilter(3pm)) for easy  filter  writing.  A  number  of  example  filters  are
              installed  in  the directory /usr/share/rlwrap/filters. "rlwrap -z filter" displays
              information about a filter, "rlwrap  -z  listing"  lists  all  currently  installed
              filters.   If  filter  needs  arguments,  you should quote the whole filter command
              line:

                  rlwrap -z 'filter args' command

              If  this command line contains shell metacharacters, rlwrap passes it to the system
              shell for parsing.

EXAMPLES

       Run nc (netcat) with command-line editing and history
          rlwrap nc

       Wrap  smbclient  (which uses readline itself), keep passwords out of the history and don't
       wrap commands launched from smbclient (like more)
          rlwrap -aPassword: -N smbclient //PEANUT/C

       Wrap gauche (a Scheme interpreter) with a bold  blue  prompt,  enable  multi-line  editing
       (using .scm as filename extension) and don't consider single quotes as quotes (so that the
       parentheses in e.g. (print 'q) match)
          rlwrap -pBlue -m -M .scm -q'"' gosh

       Get a list of all currently installed filters
          rlwrap -z listing

       Get help for the filter pipeto
          rlwrap -z pipeto

       Wrap sqlite3, use the pipeto filter to be able to pipe the output of SQL commands  through
       grep and/or less, complete (case-insensitively) on the SQL keywords in 'sql_words'
          rlwrap -a -z pipeto -i -f sql_words sqlite3 contacts.db

       In a shell script, use rlwrap in 'one-shot' mode as a replacement for read
          order=$(rlwrap -pYellow -S 'Your pizza? ' -H past_orders -P Margherita -o cat)

DIRECT MODE AND READLINE MODE

       Most  simple  console  commands  put your terminal either in "cooked" or in "raw" mode. In
       cooked mode the terminal will wait until you press the ENTER key before handing the entire
       line to the program, in raw mode every key you press is handed down immediately. In cooked
       mode you generally can use the backspace key, but not the arrow keys, to edit your  input.
       Most simple console commands use cooked mode whenever they want whole input lines, and raw
       mode when they want single keypresses. More sophisticated commands tend to  use  raw  mode
       all the time; they may sometimes be rlwrappable with the -a (and -N) options.

       When  you  rlwrap  command,  rlwrap  will  run  it  a  in a separate session, with its own
       "pseudo-terminal" (pty), and monitor this pty to see whether the pty is in raw mode or  in
       cooked  mode.  In  the  first case, rlwrap will copy all input and output directly between
       command and your terminal ("direct mode"). In the second case, rlwrap will use readline to
       edit  your  input  ("readline  mode"), and monitor command's output - every last line that
       doesn't end with a newline is a potential prompt. How it handles such a  candidate  prompt
       depends on its being in "patient" or "impatient" mode:

PATIENT AND IMPATIENT MODE

       If  command writes a lot of output, it tends to be written (and read) in "chunks". Not all
       chunks will end with a newline, and we need to distinguish  their  last  lines  from  real
       prompts,  especially  if we want to re-write ("cook") prompts. rlwrap solves this (almost)
       by waiting a little, to see if there is more to come. "A little" is 40  msec  by  default,
       but  this  can be changed with the -w option.  Normally rlwrap writes the suspected prompt
       as soon as it is received, replacing it with a "cooked" version afer the wait  time.  This
       is  called  "impatient"  mode.  If  you  don't  like the flashing effect (which can become
       annoying when you "cook" the prompt heavily) you can  put  rlwrap  in  "patient  mode"  by
       specifying  a  negative value with -w (e.g. -w -40). Rlwrap will then hold back the prompt
       and only print if after cooking.

COOKING PROMPTS

       If and when rlwrap decides that it has a prompt, it will perform a number  of  actions  on
       it,  depending on the given options: filtering (-z), substituting (-S) and colouring (-p),
       in this order. The resulting "cooked" prompt is then  printed  (after  erasing  the  "raw"
       prompt, if necessary)

SPECIAL KEYS

       Control + O
              Accept  the  current  line, but don't put it in the history list. This action has a
              readline command name  rlwrap-accept-line-and-forget

       Control + ^
              Use an external editor to edit the current input (this will only  work  if  the  -m
              option is set). This action has a readline command name  rlwrap-call-editor

       These special keys were chosen for no other reason than that they  are not currently bound
       to any readline action. If you don't like them, (or your  window  manager  swallows  them)
       they  can  be  re-bound  more  sensibly  by  including  lines  like  the following in your
       ~/.inputrc:

          "\M-\C-m": rlwrap-accept-line-and-forget # ESC-ENTER
          "\C-xe":   rlwrap-call-editor            # CTRL-x e

       cf. the readline(3) manpage

ENVIRONMENT

       RLWRAP_HOME:
              directory in which the history and completion files are kept.

       RLWRAP_EDITOR (or else EDITOR, or else VISUAL):
              editor to use for multi-line input. Example:

           export RLWRAP_EDITOR="microemacs -l%L:%C"
           export RLWRAP_EDITOR="vi +%L"

       The last example is the default; %L and  %C  are  replaced  by  line  and  column  numbers
       corresponding to the cursor position in rlwrap's edit buffer

       RLWRAP_FILTERDIR:
              Any  executable  along  your  PATH  can  in theory be used as a filter, but because
              filters have to follow a rather outlandish protocol (cf. RlwrapFilter (3)) it is  a
              good idea to keep them separate. This is why rlwrap adds a special filter directory
              to   $PATH   just   before   launching   a   filter.   By    default,    this    is
              /usr/share/rlwrap/filters, but $RLWRAP_FILTERDIR is used if set.

SIGNALS

       A  number  of signals are forwarded to command: HUP INT QUIT USR1 USR2 TERM and (by way of
       resizing command's terminal) WINCH. Some care is taken to handle TSTP (usually a result of
       a  CTRL-Z from the terminal) sensibly - for example, after suspending rlwrap in the middle
       of a line edit, continuing (by typing 'fg') will land you at  the  exact  spot  where  you
       suspended it.

       Filters  that  take  more than 1 second to respond can be interrupted by a CTRL-C from the
       terminal (although rlwrap will not survive this)

       If command changes the keystrokes that send a particular signal from  the  keyboard  (like
       emacs,  which  uses  CTRL-G instead of CTRL-C) rlwrap will do the same (but only after the
       next keystroke - use the --polling option to make rlwrap more transparent in this respect)

       When command is killed by a signal, rlwrap will clean up, reset  its  signal  handlers  an
       then commit suicide by sending the same signal to itself.  This means that your shell sees
       the same exit status as it would have seen without rlwrap.

REDIRECTION

       When the standard input is not a terminal, editing input doesn't  make  sense,  so  rlwrap
       will  ignore  all  options  and  simply  execute command. When stdout (or stderr) is not a
       terminal, rlwrap will re-open it to /dev/tty (the users terminal)  after  it  has  started
       command,   so  that  command's  output  is  redirected as expected, but keyboard input and
       rlwrap error messages are still visible.

       The upshot of this is  that  rlwrap  command  behaves  more  or  less  like  command  when
       redirecting.

EXIT STATUS

       non-zero after a rlwrap error, or else command's exit status. rlwrap will always leave the
       terminal in a tidy state, even after a crash.

FILES

       rlwrap expects its history and completion files in $RLWRAP_HOME, but uses .dotfiles in the
       user's  home  directory if this variable is not set. This will quickly become messy if you
       use rlwrap for many different commands.

       $RLWRAP_HOME/command_history, ~/.command_history
              History for command

       $RLWRAP_HOME/command_completions, ~/.command_completions
              Per-user completion word list for command. rlwrap never writes into this list,  but
              one  can  combine  -l  and -f options to to simulate the effect of a -r option that
              works across invocations.

       /usr/share/rlwrap/completions/command
              System-wide completion word list for command. This file is only  consulted  if  the
              per-user completion word list is not found.

       $INPUTRC, ~/.inputrc
              Individual  readline  initialisation file (See readline (3) for its format). rlwrap
              sets its application name to command (this can be overridden  by  the  -C  option),
              enabling  different  behaviours  for  different  commands.   One could e.g. put the
              following lines in ~/.inputrc:

                 $if coqtop
                     set show-all-if-ambiguous On
                 $endif

              making rlwrap show all completions whenever it runs coqtop

BUGS and LIMITATIONS

       Though it is flexible, delivers the goods (readline functionality),  and  adheres  to  the
       Unix  "many  small  tools"  paradigm,  rlwrap   is a kludge. It cannot know anything about
       command's internal state, which makes context-sensitive completion impossible.  Using  the
       readline library from within command is still the best option.

       Also,  because  "it  takes  two  to  tango"  there is no way for rlwrap to synchronise its
       internal state with command, resulting in a number of subtle race conditions,  where  e.g.
       command  may  have changed the state of its terminal before rlwrap has read command output
       that was written before the state change. You will notice these races especially on a busy
       machine  and with heavy "cooking" and filtering, when suddenly (and unpredictably) promtps
       or command output are garbled or incorrectly coloured.

       rlwrap can try, but often fails to, handle prompts that  contain  control  characters.   A
       flter may be used to clean up the prompt.

VERSION

       This manpage documents rlwrap version 0.41

AUTHORS

       The  readline  library (written by Brian Fox and Chet Ramey) does all the hard work behind
       the scenes, the pty-handling code has been taken practically  unchanged  from  rxvt-2.7.10
       (currently  maintained  by Geoff C. Wing), and completion word lists are managed by Damian
       Ivereigh's libredblack library. The few remaining lines of code were written by  Hans  Lub
       (hanslub42@gmail.com).

SEE ALSO

       readline(3), RlwrapFilter(3pm)

                                           May 8, 2014                                  rlwrap(1)