X-Git-Url: https://www.fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=blobdiff_plain;f=selector.1;h=be913f3a17dec14713ca94ce85f5cb3fd23d40ad;hb=9356c8c8659b8f8b39524901790bd899e9b63709;hp=8963977f1b51a09c89c3f302f263b04c243ea468;hpb=1777ff299211ccf4ff4c71113bb92bd65f0e997c;p=selector.git diff --git a/selector.1 b/selector.1 index 8963977..be913f3 100644 --- a/selector.1 +++ b/selector.1 @@ -1,59 +1,120 @@ .TH "SELECTOR" "1" .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 +\fBselector\fP [\fBoptions\fP] [ [ ...]] .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. +\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. -The main usage of selector is as a super shell-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. +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. -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. +Selector is also a good tool to test regexps, or a way to display +menus. The -x option allows to specify a label delimiter: Only the +part of each line before that character will appear during the +selection, but the full line will be returned. -The up and down cursor keys move the selected line accordingly, and -the PageUp and PageDown move by ten lines. The Home and End key moves -to the top and the bottom of the list respectively. The return key -select the current line and quit. +.SH "KEYS" +.PP + +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 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 exits. + +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" or the Escape +key. -You can cancel the selection either by interrupting the command with -^C or by typing ^G. +The "^R" key switches between the standard multi-substring mode and +the regexp 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 \fP" 10 -select a color them +.IP "\fB-i\fP" 10 +inverse 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 +.IP "\fB-e\fP" 10 +start with the regexp mode activated +.IP "\fB-a\fP" 10 +make the matching case sensitive +.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 \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 the label from the rest of the line .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 10000 <(history) + +.SH "KEY-BINDING IN BASH" + +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 + +bind '"\\C-[r":"\\C-a\\C-kselector -q -b -i -d -v -w -l 10000 <(history)\\C-m"' + +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. -.SH "EXAMPLES" +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. -To use selector to search into your shell history: +.SH "BUGS" -selector -f ${HISTFILE} -v +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. .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.