X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=blobdiff_plain;f=selector.1;h=fa215b00c61d95145fe1327b8d50bb8819cebed9;hb=c6f848650dccbecb05229e86c180bd7837872185;hp=4beb92c289a32b1cea69df1e1094e0c0ee16d064;hpb=eb0bcc7307113eebb99523b825a06b39407c39b6;p=selector.git diff --git a/selector.1 b/selector.1 index 4beb92c..fa215b0 100644 --- a/selector.1 +++ b/selector.1 @@ -1,39 +1,56 @@ -.TH "SELECTOR" "1" +\" This man page was written by Francois Fleuret +\" and is distributed under a Creative Commons Attribution-Share Alike +\" 3.0 License. + +.TH "SELECTOR" 1 "" "Francois Fleuret" + .SH "NAME" -selector - A simple command line for dynamic pattern selection + +selector \- A simple command line utility for dynamic pattern selection + .SH "SYNOPSIS" -.PP + \fBselector\fP [\fBoptions\fP] [ [ ...]] + .SH "DESCRIPTION" -.PP -\fBselector\fP is a command line 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 ^R key switches between the standard multi-substring mode and the -regexp mode. +\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. + +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. + +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. -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. +.SH "KEYS" -Selector is also a good tool to test regexp quickly. +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. -Keys corresponding to ASCII codes between ' ' and '~' add a character -to the pattern string. The Backspace key, ^H and ^? delete the -character on the left of the cursor, while 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 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 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 shortcuts ^A, ^E, ^U, and ^K do somehow what they do in readline, -and you can cancel the selection by either interrupting the command -with ^C or by typing ^G. +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 @@ -41,17 +58,20 @@ display help and exits .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 regexp mode .IP "\fB-a\fP" 10 -make the matching case sensitive +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 \fP" 10 @@ -60,28 +80,53 @@ add a title in the modeline 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 the file to search into +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 "KEYBINDING 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 ${HISTSIZE} <(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. + +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" -Modeline display problems if the pattern is too long. Probably many -others. +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.