Provided by: iselect_1.4.2-1_amd64 bug

NAME

     iSelect — Interactive Selection Tool

SYNOPSIS

     iselect [-d beg,end] [-cfae] [-p linenum] [-k key[:okey]] [-m] [-n name] [-t title] [-SKP]
             [-Q fallback] lineiselect [-d beg,end] [-cfae] [-p linenum] [-k key[:okey]] [-m] [-n name] [-t title] [-SKP]
             [-Q fallback] < lines
     iselect -V|-h

DESCRIPTION

   Intent
     iSelect is an interactive line selection tool, operating via a full-screen Curses-based
     terminal session.  It can be used either as a user interface frontend controlled by the
     shell, Perl, or another type of script backend as its wrapper, or in batch as a pipe filter
     (usually between grep and the final executing command).  In other words: iSelect was
     designed to be used for any type of interactive line-based selection.

   Input Data
     If no arguments are given, lines are read from the standard input stream.  Otherwise, lines
     are used directly.

     Each selectable line is fully bold; parts of other lines may be set in bold by wrapping them
     in ‘<b>...</b>’.

   Selections
     By default, a single line may be chosen; with -m multiple lines can be selected.  By
     default, only lines containing the tag ‘<s>’ (or with different delimiters set with -d) may
     be selected.  -a allows selecting all lines, but the tag is always removed.  Selected lines
     are written to the standard output stream

     The tag has a variant that looks like ‘<s:result text>’, which, instead of writing the line
     itself, writes result text.  Every format specifier in the form ‘%[prompt string]s’ or
     ‘%[prompt string]S’ in the output is replaced by a line entered in an interactive prompt.
     The s variant allows empty responses; S doesn't.

OPTIONS

   Input Options
     -d beg,end, --delimiter=beg,end
         Sets the delimiters for the selection tags.  The default is < and > — the selection tags
         have to read ‘<s>’ and ‘<s:result text>’.

     -c, --strip-comments
         Discard input lines starting with ‘#’.

     -f, --force-browse
         Open the full-screen browser even if input contains less than <2 lines.  This may happen
         anyway if a ‘%[prompt]s’ needs to be substituted.

     -a, --all-select
         Force all lines to be selectable.  ‘<s>’ tags are still removed.

     -e, --exit-no-select
         Exit immediately if no lines are selectable.

   Display Options
     -p, --position=linenum
         Sets the cursor position to 1-based linenumber.

     -k, --key=key:okey
         Maps key to okey.  Both may be either a printable character or one of SPACE, RETURN,
         KEY_UP (↑), KEY_DOWN (↓), KEY_LEFT (←), KEY_RIGHT (→), KEY_PPAGE (PgUp), KEY_NPAGE
         (PgDn).  This can be given any number of times, and is applied in order.

     -k, --key=key
         Same as -k key:RETURN.  For example, -k f allows using ‘f’ to confirm the selection.

     -m, --multi-line
         Allow selecting more than one line with Space.

     -n, --name=name
         Changes the string displayed flush left at the bottom of the browser window from
         "iSelect".

     -t, --title=title
         Sets the file ..., displayed centered at the bottom of the browser window.

   Output Options
     -S, --strip-result
         Strip all leading and trailing whitespace from the result string.

     -K, --key-result
         Prefix each result with the key used to confirm the selection.  This is usually "RETURN"
         or "KEY_RIGHT", but in the presence of -k, this is the (unmapped) key; thus, with -k f,
         selecting line Foo Bar by pressing ‘f’ yields ‘f:Foo Bar’.  A Space is rendered as a
         literal space, not as "SPACE".

     -P, --position-result
         Prefix each result with its 1-based line number in the buffer.

     -Q, --quit-result=fallback
         Write fallback to the standard output stream when quitting.

   Giving Feedback
     -V, --version
         Write the version and licence information to the standard output stream, exit 0.

     -h, --help
         Write the usage string information to the standard error stream, exit 0.

KEYSTROKES

   Cursor Movement
     Use these to browse through the selection list:
       CURSOR-UP ..... Move cursor one line up
       CURSOR-DOWN ... Move cursor one line down
       PAGE-UP ....... Move cursor one page up
       PAGE-DOWN ..... Move cursor one page down
       g ............. Goto first line
       G ............. Goto last line

   Line Selection
     Use these to select one line and exit in standard mode, or one or more lines in multi-line
     mode:
       RETURN ........ Select line and exit
       CURSOR-RIGHT .. Select line and exit
       SPACE ......... Select line and stay (multi-line mode only)
       C ............. Clear current marks  (multi-line mode only)

   Others
     Use these to quit iSelect or to show the help or version pages:
       q ............. Quit (exit without selection)
       CURSOR-LEFT ... Quit (exit without selection)
       h ............. Help Page
       v ............. Version Page

FILES

     The Curses session is always opened on /dev/tty, because the standard I/O streams are
     usually tied to pipes.

EXIT STATUS

     0  if a selection was made, a selection wasn't made, or succumbed to SIGINT or SIGTERM.
     1  if an unknown [o]key was given or an I/O error occurred.

EXAMPLES

     As an example we present a real-life situation where iSelect can enhance existing
     functionality.  We define two shell functions (for your $HOME/.bashrc file) which enhance
     the shell's cd built-in.
       #   database scan
       cds () {
           find "$HOME" -type d | sort > ~/.dirs &
       }

       #   enhanced cd command
       cd () {
           if [ -d "$1" ]; then
               builtin cd "$1"
           else
               builtin cd "$(grep -E "/$1[^/]*$" ~/.dirs   |
                             iselect -a -Q "$1" -n "chdir" \
                             -t "Change Directory to...")"
           fi
       }

     This cd() is compatible with the built-in in the case where the specified directory actually
     exists.  When it doesn't, the original cd would immediately give an error (assuming CDPATH
     is not set).  This version tries harder by searching for such a directory in a previously-
     built (via cds()) ($HOME/.dirs) file.  When no match is found, iSelect just returns the
     given directory as the default result and cd fails as usual.  When only one directory was
     found, iSelect gives it to cd silently.  Only when more then one directory was found,
     iSelect shows a menu to pick between matches interactively.  The chosen directory is then
     given to cd.

     For more useful examples on how to use iSelect, see /usr/share/doc/iselect/examples.

AUTHORS

     Ralf S. Engelschall <rse@engelschall.com> (http://www.engelschall.com)

SEE ALSO

     New iSelect Home: https://sr.ht/~nabijaczleweli/ossp