Cosmetics.
[selector.git] / selector.1
index 91e1dc8..fa215b0 100644 (file)
-.TH "SELECTOR" "1"
+\" This man page was written by Francois Fleuret <francois@fleuret.org>
+\" and is distributed under a Creative Commons Attribution-Share Alike
+\" 3.0 License.
+
+.TH "SELECTOR" 1 "" "Francois Fleuret"
+
 .SH "NAME"
-selector - A simple shell command for dynamic pattern selection
+
+selector \- A simple command line utility for dynamic pattern selection
+
 .SH "SYNOPSIS"
-.PP
-\fBselector\fP [\fBoptions\fP] -f <filename>
+
+\fBselector\fP [\fBoptions\fP] [<filename1> [<filename2> ...]]
+
 .SH "DESCRIPTION"
-.PP
-\fBselector\fP is a simple shell command which provides a dynamic
-string selection. A you type a list of substring separated by ';', the
-display is updated to show only the lines containing all the said
-substrings.
 
-The main usage of selector is as an efficient search in the shell
-command history. With the correct option, it will inject the selected
-line into the virtual tty input buffer, hence allowing the user to
-edit the line and execute it as a standard command.
+\fBselector\fP is a command line utility for dynamic string
+selection. As you type a list of strings separated by ";" or a regexp,
+the display is updated in real time to show only the lines containing
+all the said strings, or matching the regexp.
 
-Keys corresponding to ASCII codes between ' ' and '~' add a character
-to the pattern string. The Delete key, Backspace key, ^D and ^H delete
-one character from the pattern string.
+This command was mainly designed as a way to search in the shell
+history, for which it is substantially more efficient than the
+standard readline ^R bidding. The -v option will inject the selected
+line into the tty input buffer, allowing the user to edit the line and
+execute it as a standard command.
 
-The Up and Down cursor keys move the selected line accordingly, and
-PageUp and PageDown move by ten lines. The Home and End key move to
-the top and the bottom of the list respectively. The return key
-selects the current line and quits.
+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.
 
-You can cancel the selection either by interrupting the command with
-^C or by typing ^G.
+.SH "KEYS"
+
+Keys corresponding to ASCII codes between " " and "~" add a character
+to the pattern string. The Backspace key, "^H" and "^?" delete the
+character immediately on the left of the cursor, while the Delete key
+and "^D" delete the character at cursor location.
+
+The Left and Right cursor keys move the editing cursor
+accordingly. The Up and Down cursor keys move the selected line one
+entry at a time, and PageUp and PageDown move it by ten entries. The
+Home and End key move to the top and the bottom of the list
+respectively. The return key selects the current line and exits.
+
+The keys "^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" or the Escape
+key.
+
+The key "^R" switches between the multi-substring and the regexp
+selection mode, and "^I" between the case-sensitive and
+case-insensitive modes.
 
 .SH "OPTIONS"
 .IP "\fB-h\fP" 10
 display help and exits
-.IP "\fB-v\fP" 10
-inject the selected line into the tty input buffer
 .IP "\fB-m\fP" 10
 force the monochrome mode
-.IP "\fB-t <color fg modeline> <color bg modeline> <color fg highlight> <color bg highlight>\fP" 10
-select a color them; each color is a positive number
+.IP "\fB-i\fP" 10
+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 (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 in regexp mode
+.IP "\fB-a\fP" 10
+start in 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
+state that all following arguments are filenames
+.IP "\fB-t <title>\fP" 10
+add a title in the modeline
+.IP "\fB-c <fg modeline> <bg modeline> <fg highlight> <bg highlight>\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 consider
+specify the maximum number of lines to take into account
 .IP "\fB-f <input filename>\fP" 10
-specify the file to search into
+specify a file to search into (option kept for compatibility reasons)
+
+.SH "EXAMPLE"
+
+To use selector to search into your bash history, you can use
+
+.B selector -q -b -i -d -v -w -l ${HISTSIZE} <(history)
+
+.SH "KEYBINDING IN BASH"
 
-.SH "EXAMPLES"
+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 use selector to search into your shell history:
+bind '"\\C-[r":"\\C-a\\C-kselector -q -b -i -d -v -w -l ${HISTSIZE} <(history)\\C-m"'
 
-selector -f ${HISTFILE} -v
+in your ~/.bashrc.
+
+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.
+
+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. 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.
+
+The selector command was written by Francois Fleuret
+<francois@fleuret.org> and is distributed under the terms of the GNU
+General Public License version 3 as published by the Free Software
+Foundation.