line into the virtual tty input buffer, hence allowing the user to
edit the line and execute it as a standard command.
-Selector is also a good tool to test regexps.
+Selector is also a good tool to test regexps, or a way to display
+menus. The -x option allows to specify a label delimiter: the part of
+each line before that character will appear during the selection, and
+the part after that character will be returned.
.SH "KEYS"
.PP
The shortcuts "^A", "^E", "^U", and "^K" do somehow what they do in
readline, and you can exit selector without doing anything by either
-interrupting the command with "^C" or by typing "^G".
+interrupting the command with "^C" or by typing "^G" or the Escape
+key.
The "^R" key switches between the standard multi-substring mode and
the regexp mode, and "^I" between the case-sensitive and
.IP "\fB-m\fP" 10
force the monochrome mode
.IP "\fB-i\fP" 10
-inverse the order of the lines
+invert the order of the lines
.IP "\fB-b\fP" 10
remove the numeric prefix from bash history
.IP "\fB-z\fP" 10
remove the time prefix from zsh history
.IP "\fB-d\fP" 10
-remove duplicated lines
+remove duplicated lines (note that you can have two different lines
+with the same visible part if you use the -x option)
.IP "\fB-e\fP" 10
-start with the regexp mode activated
+start in the regexp mode
.IP "\fB-a\fP" 10
-make the matching case sensitive
+start in the case-sensitive mode
.IP "\fB-q\fP" 10
make a flash instead of a beep when there is an edition error
.IP "\fB--\fP" 10
select the modeline and highlight color numbers
.IP "\fB-v\fP" 10
inject the selected line into the tty input buffer
+.IP "\fB-w\fP" 10
+add ^Q between characters during tty injection to quote control characters
.IP "\fB-o <output filename>\fP" 10
write the selected line into the specified file
.IP "\fB-s <pattern separator>\fP" 10
specify the symbol to separate the substrings in the search pattern
+.IP "\fB-x <label separator>\fP" 10
+specify the symbol to separate what to show to the user during the
+selection from the line to return
.IP "\fB-l <max number of lines>\fP" 10
specify the maximum number of lines to take into account
.IP "\fB-f <input filename>\fP" 10
specify a file to search into (option kept for compatibility reasons)
-.SH "EXAMPLES"
+.SH "EXAMPLE"
To use selector to search into your bash history, you can use
-.B selector -d -i -b -v <(history)
+.B selector -q -b -i -d -v -w -l ${HISTSIZE} <(history)
-.SH "INTERACTION WITH READLINE"
+.SH "KEY-BINDING IN BASH"
-For better efficiency, you can associate selector to a single key in
-in the console through the use of the readline configuration file
-~/.inputrc.
+You can associate selector to a single key in bash by using the
+command 'bind' in your bash initialization file. For instance, to
+associate it to M-r (that is, the "Alt" and "r" key pressed together),
+just add something like
-To do so, you have first to pick a key and know the character sequence
-associated to it. You can figure that out by typing at the console
-prompt Ctrl-q followed by the key you want to use. For instance, if
-you want to use Alt-r, you may get "^[r". Then, you have to add in
-~/.inputrc the following line:
+bind '"\\C-[r":"\\C-a\\C-kselector -q -b -i -d -v -w -l ${HISTSIZE} <(history)\\C-m"'
-"^[r": "^A^K selector -d -i -b -v <(history)^M"
+in your ~/.bashrc.
-Note that you have to put the actual control characters in the
-configuration file, not a "^" followed by a character. To do so with
-Emacs for instance, you have to use the Ctrl-q key followed by another
-key: Ctrl-q Ctrl-a inserts "^A", Ctrl-q Ctrl-[ inserts "^[", etc.
+Note that depending on the configuration of your system, the sequence
+associated to the M-r key, which is here "C-[r", may differ. To figure
+it out, simply press C-q followed by M-r in the console.
-These control characters have the following roles: "^A" puts the
-cursor to the mostleft location, "^K" erases the current content of
-the readline buffer, and "^M" simulates the enter key.
+The control character "C-a" puts the cursor to the mostleft location,
+"C-k" erases the current content of the readline buffer, and "C-m"
+simulates the enter key.
.SH "BUGS"
-There are modeline display problems if the pattern is too long. If a
-line contains control characters, the returned line has been converted
-to printable characters.
+There are modeline display problems if the pattern is too long. This
+program does not handle multibyte characters.
.SH "AUTHOR"
.PP
-Written by Francois Fleuret <francois@fleuret.org>. Permission is
-granted to copy, distribute and/or modify this document under the
-terms of the GNU GPL.
+Written by Francois Fleuret <francois@fleuret.org>, and distributed
+under a Creative Commons Attribution-Share Alike 3.0 License.