Realized that recent changes deserve a new version number.
[selector.git] / selector.1
index 5659e6c..a0a88b4 100644 (file)
@@ -1,4 +1,4 @@
-.TH "SELECTOR" "1.1.3" "May 2011" "Francois Fleuret" "User Commands"
+.TH "SELECTOR" "1.1.8" "February 2013" "Francois Fleuret" "User Commands"
 
 \" This man page was written by Francois Fleuret <francois@fleuret.org>
 \" and is distributed under a Creative Commons Attribution-Share Alike
@@ -28,12 +28,26 @@ and execute it as a standard command.
 
 Selector is also a handy tool to test regexps, or to display menus
 with many possible choices. For the latter, the -x option allows to
-specify a label delimiter: the part of each line before that character
-will appear during the selection, but only the part after that
-character will be returned.
+show different strings than the ones returned.
 
 Note that because this is an interactive command, the standard input
-can not be used as one of the input files.
+cannot be used as one of the input files.
+
+.SH "USING SELECTOR IN BASH"
+
+The selector command comes with a shell script for bash. If you add
+
+.P
+.nf
+.B source bash-selector.sh --hist --cd
+
+.fi
+in your \fB~/.bashrc\fR, it will remap M-r to the smart history search,
+and redefine \fBcd\fR so that M-c provides a smart cd history.
+
+This script relies on readline being configured with the default
+emacs-style key bindings. You may have to hack a bit if you want to
+use it with the vi-style mode.
 
 .SH "KEY BINDINGS"
 
@@ -82,11 +96,17 @@ with the same visible part if you use the -x option)
 start in regexp mode
 .TP
 \fB-a\fR, \fB--case-sensitive\fR
-start in case sensitive mode
+start in case-sensitive mode
+.TP
+\fB-j\fR, \fB--show-long-lines\fR
+print a long-line indicator at the end of truncated lines
 .TP
-\fB-n\fR, \fB--exclamation-negates\fR
-substrings starting with an exclamation mark must be absent for a line
-to match
+\fB-y\fR, \fB--show-hits\fR
+highlight the part(s) of each line which match(es) the substrings or regexp
+.TP
+\fB-u\fR, \fB--upper-case-makes-case-sensitive\fR
+using an upper case in the matching string makes the matching
+case-sensitive
 .TP
 \fB-q\fR, \fB--no-beep\fR
 make a flash instead of a beep when there is an edition error
@@ -99,9 +119,15 @@ standard setting for bash history search, same as
 
 -b -i -d -v -w -l ${HISTSIZE}
 .TP
+\fB--delete-regexp \fI<regexp>\fR
+deletes in every line the portion matching the regexp
+.TP
 \fB-t \fI<title>\fR, \fB--title \fI<title>\fR
 add a title in the modeline
 .TP
+\fB-r \fI<pattern>\fR, \fB--pattern \fI<pattern>\fR
+set a pattern
+.TP
 \fB-c \fI<colors>\fR, \fB--colors \fI<colors>\fR
 select the modeline and highlight color numbers with a color list of
 the form
@@ -122,7 +148,8 @@ specify the character to separate the substrings in the search pattern
 .TP
 \fB-x \fI<separator>\fR, \fB--label-separator \fI<separator>\fR
 specify the character to separate what to show to the user during the
-selection from the line to return
+selection from the line to return. If the provided separator is "\\n",
+the lines to show to the user alternate with the lines to return
 .TP
 \fB-l \fI<number>\fR, \fB--number-of-lines \fI<number>\fR
 specify the maximum number of lines to take into account
@@ -131,38 +158,24 @@ specify the maximum number of lines to take into account
 
 To use selector to search into your bash history
 
+.P
+.nf
 .B selector -q --bash <(history)
 
+.fi
 To show a list of directories and insert a cd command to the selected
-one (using @ as a separator)
-
-.B selector -v -x @ <(find . -type d | awk \(aq{print $0\(dq@cd \(dq$0}\(aq)
-
-To select a line in a long text and returns the line number (this
-command uses ^A as a separator, hence there will be problems if the
-file contains ^A)
-
-.B selector -v -x ^A <(awk < something.txt \(aq{ print $0\(dq^A\(dqNR }\(aq)
-
-.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 \(aq\(dq\\C-[r\(dq:\(dq\\C-a\\C-kselector --bash <(history)\\C-m\(dq\(aq
+one
 
-in your
-.IR ~/.bashrc .
+.P
+.nf
+.B selector -v -x \(dq\\n\(dq <(find . -type d | awk \(aq{ print $0\(dq\\ncd \(dq$0 }\(aq)
 
-This binding uses the control character ^A to put the cursor to the
-mostleft location and ^K to erase the current content of the readline
-buffer, and it simulates the enter key with ^M.
+.fi
+To select a line in a long text and write the line number in /tmp/nb
 
-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.
+.P
+.nf
+.B selector -o /tmp/nb -x \(dq\\n\(dq <(awk < something.txt \(aq{ print $0\(dq\\n\(dqNR }\(aq)
 
 .SH "BUGS"