less.1 (88814B)
- '\" t
- .TH LESS 1 "Version 643: 20 Jul 2023"
- .SH NAME
- less \- opposite of more
- .SH SYNOPSIS
- .B "less \-?"
- .br
- .B "less \-\-help"
- .br
- .B "less \-V"
- .br
- .B "less \-\-version"
- .br
- .B "less [\-[+]aABcCdeEfFgGiIJKLmMnNqQrRsSuUVwWX\(ti]"
- .br
- .B " [\-b \fIspace\/\fP] [\-h \fIlines\/\fP] [\-j \fIline\/\fP] [\-k \fIkeyfile\/\fP]"
- .br
- .B " [\-{oO} \fIlogfile\/\fP] [\-p \fIpattern\/\fP] [\-P \fIprompt\/\fP] [\-t \fItag\/\fP]"
- .br
- .B " [\-T \fItagsfile\/\fP] [\-x \fItab\/\fP,...] [\-y \fIlines\/\fP] [\-[z] \fIlines\/\fP]"
- .br
- .B " [\-# \fIshift\/\fP] [+[+]\fIcmd\/\fP] [\-\-] [\fIfilename\/\fP]..."
- .br
- (See the OPTIONS section for alternate option syntax with long option names.)
- .
- .SH DESCRIPTION
- .B Less
- is a program similar to
- .BR more (1),
- but which allows backward movement
- in the file as well as forward movement.
- Also,
- .B less
- does not have to read the entire input file before starting,
- so with large input files it starts up faster than text editors like
- .BR vi (1).
- .B Less
- uses termcap (or terminfo on some systems),
- so it can run on a variety of terminals.
- There is even limited support for hardcopy terminals.
- (On a hardcopy terminal, lines which should be printed at the top
- of the screen are prefixed with a caret.)
- .PP
- Commands are based on both
- .B more
- and
- .BR vi .
- Commands may be preceded by a decimal number,
- called N in the descriptions below.
- The number is used by some commands, as indicated.
- .
- .SH COMMANDS
- In the following descriptions, \(haX means control-X.
- ESC stands for the ESCAPE key; for example ESC-v means the
- two character sequence "ESCAPE", then "v".
- .IP "h or H"
- Help: display a summary of these commands.
- If you forget all the other commands, remember this one.
- .IP "SPACE or \(haV or f or \(haF"
- Scroll forward N lines, default one window (see option \-z below).
- If N is more than the screen size, only the final screenful is displayed.
- Warning: some systems use \(haV as a special literalization character.
- .IP "z"
- Like SPACE, but if N is specified, it becomes the new window size.
- .IP "ESC-SPACE"
- Like SPACE, but scrolls a full screenful, even if it reaches
- end-of-file in the process.
- .IP "ENTER or RETURN or \(haN or e or \(haE or j or \(haJ"
- Scroll forward N lines, default 1.
- The entire N lines are displayed, even if N is more than the screen size.
- .IP "d or \(haD"
- Scroll forward N lines, default one half of the screen size.
- If N is specified, it becomes the new default for
- subsequent d and u commands.
- .IP "b or \(haB or ESC-v"
- Scroll backward N lines, default one window (see option \-z below).
- If N is more than the screen size, only the final screenful is displayed.
- .IP "w"
- Like ESC-v, but if N is specified, it becomes the new window size.
- .IP "y or \(haY or \(haP or k or \(haK"
- Scroll backward N lines, default 1.
- The entire N lines are displayed, even if N is more than the screen size.
- Warning: some systems use \(haY as a special job control character.
- .IP "u or \(haU"
- Scroll backward N lines, default one half of the screen size.
- If N is specified, it becomes the new default for
- subsequent d and u commands.
- .IP "J"
- Like j, but continues to scroll beyond the end of the file.
- .IP "K or Y"
- Like k, but continues to scroll beyond the beginning of the file.
- .IP "ESC-) or RIGHTARROW"
- Scroll horizontally right N characters, default half the screen width
- (see the \-# option).
- If a number N is specified, it becomes the default for future RIGHTARROW
- and LEFTARROW commands.
- While the text is scrolled, it acts as though the \-S option
- (chop lines) were in effect.
- .IP "ESC-( or LEFTARROW"
- Scroll horizontally left N characters, default half the screen width
- (see the \-# option).
- If a number N is specified, it becomes the default for future RIGHTARROW
- and LEFTARROW commands.
- .IP "ESC-} or \(haRIGHTARROW"
- Scroll horizontally right to show the end of the longest displayed line.
- .IP "ESC-{ or \(haLEFTARROW"
- Scroll horizontally left back to the first column.
- .IP "r or \(haR or \(haL"
- Repaint the screen.
- .IP R
- Repaint the screen, discarding any buffered input.
- That is, reload the current file.
- Useful if the file is changing while it is being viewed.
- .IP "F"
- Scroll forward, and keep trying to read when the
- end of file is reached.
- Normally this command would be used when already at the end of the file.
- It is a way to monitor the tail of a file which is growing
- while it is being viewed.
- (The behavior is similar to the "tail \-f" command.)
- To stop waiting for more data, enter the interrupt character (usually \(haC).
- On systems which support
- .BR poll (2)
- you can also use \(haX or the character specified by the \-\-intr option.
- If the input is a pipe and the \-\-exit-follow-on-close option is in effect,
- .B less
- will automatically stop waiting for data when the input side
- of the pipe is closed.
- .IP "ESC-F"
- Like F, but as soon as a line is found which matches
- the last search pattern, the terminal bell is rung
- and forward scrolling stops.
- .IP "g or < or ESC-<"
- Go to line N in the file, default 1 (beginning of file).
- (Warning: this may be slow if N is large.)
- .IP "G or > or ESC->"
- Go to line N in the file, default the end of the file.
- (Warning: this may be slow if N is large,
- or if N is not specified and
- standard input, rather than a file, is being read.)
- .IP "ESC-G"
- Same as G, except if no number N is specified and the input is standard input,
- goes to the last line which is currently buffered.
- .IP "p or %"
- Go to a position N percent into the file.
- N should be between 0 and 100, and may contain a decimal point.
- .IP "P"
- Go to the line containing byte offset N in the file.
- .IP "{"
- If a left curly bracket appears in the top line displayed
- on the screen,
- the { command will go to the matching right curly bracket.
- The matching right curly bracket is positioned on the bottom
- line of the screen.
- If there is more than one left curly bracket on the top line,
- a number N may be used to specify the N-th bracket on the line.
- .IP "}"
- If a right curly bracket appears in the bottom line displayed
- on the screen,
- the } command will go to the matching left curly bracket.
- The matching left curly bracket is positioned on the top
- line of the screen.
- If there is more than one right curly bracket on the bottom line,
- a number N may be used to specify the N-th bracket on the line.
- .IP "("
- Like {, but applies to parentheses rather than curly brackets.
- .IP ")"
- Like }, but applies to parentheses rather than curly brackets.
- .IP "["
- Like {, but applies to square brackets rather than curly brackets.
- .IP "]"
- Like }, but applies to square brackets rather than curly brackets.
- .IP "ESC-\(haF"
- Followed by two characters,
- acts like {, but uses the two characters as open and close brackets,
- respectively.
- For example, "ESC \(haF < >" could be used to
- go forward to the > which matches the < in the top displayed line.
- .IP "ESC-\(haB"
- Followed by two characters,
- acts like }, but uses the two characters as open and close brackets,
- respectively.
- For example, "ESC \(haB < >" could be used to
- go backward to the < which matches the > in the bottom displayed line.
- .IP m
- Followed by any lowercase or uppercase letter,
- marks the first displayed line with that letter.
- If the status column is enabled via the \-J option,
- the status column shows the marked line.
- .IP M
- Acts like m, except the last displayed line is marked
- rather than the first displayed line.
- .IP "\(aq"
- (Single quote.)
- Followed by any lowercase or uppercase letter, returns to the position which
- was previously marked with that letter.
- Followed by another single quote, returns to the position at
- which the last "large" movement command was executed.
- Followed by a \(ha or $, jumps to the beginning or end of the
- file respectively.
- Marks are preserved when a new file is examined,
- so the \(aq command can be used to switch between input files.
- .IP "\(haX\(haX"
- Same as single quote.
- .IP "ESC-m"
- Followed by any lowercase or uppercase letter,
- clears the mark identified by that letter.
- .IP /pattern
- Search forward in the file for the N-th line containing the pattern.
- N defaults to 1.
- The pattern is a regular expression, as recognized by
- the regular expression library supplied by your system.
- By default, searching is case-sensitive (uppercase and lowercase
- are considered different); the \-i option can be used to change this.
- The search starts at the first line displayed
- (but see the \-a and \-j options, which change this).
- .sp
- Certain characters are special
- if entered at the beginning of the pattern;
- they modify the type of search rather than become part of the pattern:
- .RS
- .IP "\(haN or !"
- Search for lines which do NOT match the pattern.
- .IP "\(haE or *"
- Search multiple files.
- That is, if the search reaches the END of the current file
- without finding a match,
- the search continues in the next file in the command line list.
- .IP "\(haF or @"
- Begin the search at the first line of the FIRST file
- in the command line list,
- regardless of what is currently displayed on the screen
- or the settings of the \-a or \-j options.
- .IP "\(haK"
- Highlight any text which matches the pattern on the current screen,
- but don't move to the first match (KEEP current position).
- .IP "\(haR"
- Don't interpret regular expression metacharacters;
- that is, do a simple textual comparison.
- .IP "\(haS"
- Followed by a digit N between 1 and 5.
- Only text which has a non-empty match for the N-th parenthesized SUB-PATTERN
- will be considered to match the pattern.
- (Supported only if
- .B less
- is built with one of the regular expression libraries
- .BR posix ", " pcre ", or " pcre2 ".)"
- Multiple \(haS modifiers can be specified,
- to match more than one sub-pattern.
- .IP "\(haW"
- WRAP around the current file.
- That is, if the search reaches the end of the current file
- without finding a match, the search continues from the first line of the
- current file up to the line where it started.
- If the \(haW modifier is set, the \(haE modifier is ignored.
- .RE
- .IP ?pattern
- Search backward in the file for the N-th line containing the pattern.
- The search starts at the last line displayed
- (but see the \-a and \-j options, which change this).
- .sp
- Certain characters are special as in the / command:
- .RS
- .IP "\(haN or !"
- Search for lines which do NOT match the pattern.
- .IP "\(haE or *"
- Search multiple files.
- That is, if the search reaches the beginning of the current file
- without finding a match,
- the search continues in the previous file in the command line list.
- .IP "\(haF or @"
- Begin the search at the last line of the last file
- in the command line list,
- regardless of what is currently displayed on the screen
- or the settings of the \-a or \-j options.
- .IP "\(haK"
- As in forward searches.
- .IP "\(haR"
- As in forward searches.
- .IP "\(haS"
- As in forward searches.
- .IP "\(haW"
- WRAP around the current file.
- That is, if the search reaches the beginning of the current file
- without finding a match, the search continues from the last line of the
- current file up to the line where it started.
- .RE
- .IP "ESC-/pattern"
- Same as "/*".
- .IP "ESC-?pattern"
- Same as "?*".
- .IP n
- Repeat previous search, for N-th line containing the last pattern.
- If the previous search was modified by \(haN, the search is made for the
- N-th line NOT containing the pattern.
- If the previous search was modified by \(haE, the search continues
- in the next (or previous) file if not satisfied in the current file.
- If the previous search was modified by \(haR, the search is done
- without using regular expressions.
- There is no effect if the previous search was modified by \(haF or \(haK.
- .IP N
- Repeat previous search, but in the reverse direction.
- .IP "ESC-n"
- Repeat previous search, but crossing file boundaries.
- The effect is as if the previous search were modified by *.
- .IP "ESC-N"
- Repeat previous search, but in the reverse direction
- and crossing file boundaries.
- .IP "ESC-u"
- Undo search highlighting.
- Turn off highlighting of strings matching the current search pattern.
- If highlighting is already off because of a previous ESC-u command,
- turn highlighting back on.
- Any search command will also turn highlighting back on.
- (Highlighting can also be disabled by toggling the \-G option;
- in that case search commands do not turn highlighting back on.)
- .IP "ESC-U"
- Like ESC-u but also clears the saved search pattern.
- If the status column is enabled via the \-J option,
- this clears all search matches marked in the status column.
- .IP "&pattern"
- Display only lines which match the pattern;
- lines which do not match the pattern are not displayed.
- If pattern is empty (if you type & immediately followed by ENTER),
- any filtering is turned off, and all lines are displayed.
- While filtering is in effect, an ampersand is displayed at the
- beginning of the prompt,
- as a reminder that some lines in the file may be hidden.
- Multiple & commands may be entered, in which case only lines
- which match all of the patterns will be displayed.
- .sp
- Certain characters are special as in the / command:
- .RS
- .IP "\(haN or !"
- Display only lines which do NOT match the pattern.
- .IP "\(haR"
- Don't interpret regular expression metacharacters;
- that is, do a simple textual comparison.
- .RE
- .IP ":e [filename]"
- Examine a new file.
- If the filename is missing, the "current" file (see the :n and :p commands
- below) from the list of files in the command line is re-examined.
- A percent sign (%) in the filename is replaced by the name of the
- current file.
- A pound sign (#) is replaced by the name of the previously examined file.
- However, two consecutive percent signs are simply
- replaced with a single percent sign.
- This allows you to enter a filename that contains a percent sign
- in the name.
- Similarly, two consecutive pound signs are replaced with a single pound sign.
- The filename is inserted into the command line list of files
- so that it can be seen by subsequent :n and :p commands.
- If the filename consists of several files, they are all inserted into
- the list of files and the first one is examined.
- If the filename contains one or more spaces,
- the entire filename should be enclosed in double quotes
- (also see the \-" option).
- .IP "\(haX\(haV or E"
- Same as :e.
- Warning: some systems use \(haV as a special literalization character.
- On such systems, you may not be able to use \(haV.
- .IP ":n"
- Examine the next file (from the list of files given in the command line).
- If a number N is specified, the N-th next file is examined.
- .IP ":p"
- Examine the previous file in the command line list.
- If a number N is specified, the N-th previous file is examined.
- .IP ":x"
- Examine the first file in the command line list.
- If a number N is specified, the N-th file in the list is examined.
- .IP ":d"
- Remove the current file from the list of files.
- .IP "t"
- Go to the next tag, if there were more than one matches for the current tag.
- See the \-t option for more details about tags.
- .IP "T"
- Go to the previous tag, if there were more than one matches for the current tag.
- .IP "= or \(haG or :f"
- Prints some information about the file being viewed,
- including its name
- and the line number and byte offset of the bottom line being displayed.
- If possible, it also prints the length of the file,
- the number of lines in the file
- and the percent of the file above the last displayed line.
- .IP \-
- Followed by one of the command line option letters (see OPTIONS below),
- this will change the setting of that option
- and print a message describing the new setting.
- If a \(haP (CONTROL-P) is entered immediately after the dash,
- the setting of the option is changed but no message is printed.
- If the option letter has a numeric value (such as \-b or \-h),
- or a string value (such as \-P or \-t),
- a new value may be entered after the option letter.
- If no new value is entered, a message describing
- the current setting is printed and nothing is changed.
- .IP \-\-
- Like the \- command, but takes a long option name (see OPTIONS below)
- rather than a single option letter.
- You must press ENTER or RETURN after typing the option name.
- A \(haP immediately after the second dash suppresses printing of a
- message describing the new setting, as in the \- command.
- .IP \-+
- Followed by one of the command line option letters
- this will reset the option to its default setting
- and print a message describing the new setting.
- (The "\-+\fIX\fP" command does the same thing
- as "\-+\fIX\fP" on the command line.)
- This does not work for string-valued options.
- .IP \-\-+
- Like the \-+ command, but takes a long option name
- rather than a single option letter.
- .IP \-!
- Followed by one of the command line option letters,
- this will reset the option to the "opposite" of its default setting
- and print a message describing the new setting.
- This does not work for numeric or string-valued options.
- .IP \-\-!
- Like the \-!\& command, but takes a long option name
- rather than a single option letter.
- .IP _
- (Underscore.)
- Followed by one of the command line option letters,
- this will print a message describing the current setting of that option.
- The setting of the option is not changed.
- .IP __
- (Double underscore.)
- Like the _ (underscore) command, but takes a long option name
- rather than a single option letter.
- You must press ENTER or RETURN after typing the option name.
- .IP +cmd
- Causes the specified cmd to be executed each time a new file is examined.
- For example, +G causes
- .B less
- to initially display each file starting at the end
- rather than the beginning.
- .IP V
- Prints the version number of
- .B less
- being run.
- .IP "q or Q or :q or :Q or ZZ"
- Exits
- .BR less .
- .PP
- The following
- six
- commands may or may not be valid, depending on your particular installation.
- .
- .IP v
- Invokes an editor to edit the current file being viewed.
- The editor is taken from the environment variable VISUAL if defined,
- or EDITOR if VISUAL is not defined,
- or defaults to "vi" if neither VISUAL nor EDITOR is defined.
- See also the discussion of LESSEDIT under the section on PROMPTS below.
- .IP "! shell-command"
- Invokes a shell to run the shell-command given.
- A percent sign (%) in the command is replaced by the name of the
- current file.
- A pound sign (#) is replaced by the name of the previously examined file.
- "!!" repeats the last shell command.
- "!" with no shell command simply invokes a shell.
- On Unix systems, the shell is taken from the environment variable SHELL,
- or defaults to "sh".
- On MS-DOS and OS/2 systems, the shell is the normal command processor.
- .IP "# shell-command"
- Similar to the "!" command,
- except that the command is expanded in the same way as prompt strings.
- For example, the name of the current file would be given as "%f".
- .IP "| <m> shell-command"
- <m> represents any mark letter.
- Pipes a section of the input file to the given shell command.
- The section of the file to be piped is between the position marked by
- the letter and the current screen.
- The entire current screen is included, regardless of whether the
- marked position is before or after the current screen.
- <m> may also be \(ha or $ to indicate beginning or end of file respectively.
- If <m> is \&.\& or newline, the current screen is piped.
- .IP "s filename"
- Save the input to a file.
- This works only if the input is a pipe, not an ordinary file.
- .IP "\(haX"
- When the "Waiting for data" message is displayed,
- such as while in the F command, pressing \(haX
- will stop
- .B less
- from waiting and return to a prompt.
- This may cause
- .B less
- to think that the file ends at the current position,
- so it may be necessary to use the R or F command to see more data.
- The \-\-intr option can be used to specify a different character
- to use instead of \(haX.
- This command works only on systems that support the
- .BR poll (2)
- function.
- On systems without
- .BR poll (2),
- the interrupt character (usually \(haC) can be used instead.
- .
- .SH OPTIONS
- Command line options are described below.
- Most options may be changed while
- .B less
- is running, via the "\-" command.
- .PP
- Some options may be given in one of two forms:
- either a dash followed by a single letter,
- or two dashes followed by a long option name.
- A long option name may be abbreviated as long as
- the abbreviation is unambiguous.
- For example, \-\-quit-at-eof may be abbreviated \-\-quit, but not
- \-\-qui, since both \-\-quit-at-eof and \-\-quiet begin with \-\-qui.
- Some long option names are in uppercase, such as \-\-QUIT-AT-EOF, as
- distinct from \-\-quit-at-eof.
- Such option names need only have their first letter capitalized;
- the remainder of the name may be in either case.
- For example, \-\-Quit-at-eof is equivalent to \-\-QUIT-AT-EOF.
- .PP
- Options are also taken from the environment variable "LESS".
- For example,
- to avoid typing "less \-options \&...\&" each time
- .B less
- is invoked, you might tell
- .BR csh :
- .sp
- setenv LESS "\-options"
- .sp
- or if you use
- .BR sh :
- .sp
- LESS="\-options"; export LESS
- .sp
- On MS-DOS, you don't need the quotes, but you should replace any
- percent signs in the options string by double percent signs.
- .sp
- The environment variable is parsed before the command line,
- so command line options override the LESS environment variable.
- If an option appears in the LESS variable, it can be reset
- to its default value on the command line by beginning the command
- line option with "\-+".
- .sp
- Some options like \-k or \-D require a string to follow the option letter.
- The string for that option is considered to end when a dollar sign ($) is found.
- For example, you can set two \-D options like this:
- .sp
- LESS="Dn9.1$Ds4.1"
- .sp
- If the \-\-use-backslash option appears earlier in the options, then
- a dollar sign or backslash may be included literally in an option string
- by preceding it with a backslash.
- If the \-\-use-backslash option is not in effect, then backslashes are
- not treated specially, and there is no way to include a dollar sign
- in the option string.
- .IP "\-? or \-\-help"
- This option displays a summary of the commands accepted by
- .B less
- (the same as the h command).
- (Depending on how your shell interprets the question mark,
- it may be necessary to quote the question mark, thus: "\-\e?".)
- .IP "\-a or \-\-search-skip-screen"
- By default, forward searches start at the top of the displayed screen
- and backwards searches start at the bottom of the displayed screen
- (except for repeated searches invoked by the n or N commands,
- which start after or before the "target" line respectively;
- see the \-j option for more about the target line).
- The \-a option causes forward searches to instead start at
- the bottom of the screen
- and backward searches to start at the top of the screen,
- thus skipping all lines displayed on the screen.
- .IP "\-A or \-\-SEARCH-SKIP-SCREEN"
- Causes all forward searches (not just non-repeated searches)
- to start just after the target line, and all backward searches
- to start just before the target line.
- Thus, forward searches will skip part of the displayed screen
- (from the first line up to and including the target line).
- Similarly backwards searches will skip the displayed screen
- from the last line up to and including the target line.
- This was the default behavior in less versions prior to 441.
- .IP "\-b\fIn\fP or \-\-buffers=\fIn\fP"
- Specifies the amount of buffer space
- .B less
- will use for each file, in units of kilobytes (1024 bytes).
- By default 64\ KB of buffer space is used for each file
- (unless the file is a pipe; see the \-B option).
- The \-b option specifies instead that \fIn\fP kilobytes of
- buffer space should be used for each file.
- If \fIn\fP is \-1, buffer space is unlimited; that is,
- the entire file can be read into memory.
- .IP "\-B or \-\-auto-buffers"
- By default, when data is read from a pipe,
- buffers are allocated automatically as needed.
- If a large amount of data is read from the pipe, this can cause
- a large amount of memory to be allocated.
- The \-B option disables this automatic allocation of buffers for pipes,
- so that only 64\ KB
- (or the amount of space specified by the \-b option)
- is used for the pipe.
- Warning: use of \-B can result in erroneous display, since only the
- most recently viewed part of the piped data is kept in memory;
- any earlier data is lost.
- Lost characters are displayed as question marks.
- .IP "\-c or \-\-clear-screen"
- Causes full screen repaints to be painted from the top line down.
- By default,
- full screen repaints are done by scrolling from the bottom of the screen.
- .IP "\-C or \-\-CLEAR-SCREEN"
- Same as \-c, for compatibility with older versions of
- .BR less .
- .IP "\-d or \-\-dumb"
- The \-d option suppresses the error message
- normally displayed if the terminal is dumb;
- that is, lacks some important capability,
- such as the ability to clear the screen or scroll backward.
- The \-d option does not otherwise change the behavior of
- .B less
- on a dumb terminal.
- .IP "\-D\fBx\fP\fIcolor\fP or \-\-color=\fBx\fP\fIcolor\fP"
- Changes the color of different parts of the displayed text.
- \fBx\fP is a single character which selects the type of text
- whose color is being set:
- .RS
- .IP "B"
- Binary characters.
- .IP "C"
- Control characters.
- .IP "E"
- Errors and informational messages.
- .IP "H"
- Header lines and columns, set via the \-\-header option.
- .IP "M"
- Mark letters in the status column.
- .IP "N"
- Line numbers enabled via the \-N option.
- .IP "P"
- Prompts.
- .IP "R"
- The rscroll character.
- .IP "S"
- Search results.
- .IP "1-5"
- The text in a search result which matches
- the first through fifth parenthesized sub-pattern.
- Sub-pattern coloring works only if
- .B less
- is built with one of the regular expression libraries
- .BR posix ", " pcre ", or " pcre2 .
- .IP "W"
- The highlight enabled via the \-w option.
- .IP "d"
- Bold text.
- .IP "k"
- Blinking text.
- .IP "s"
- Standout text.
- .IP "u"
- Underlined text.
- .RE
- .RS
- The uppercase letters and digits can be used only when the \-\-use-color option is enabled.
- When text color is specified by both an uppercase letter and a lowercase letter,
- the uppercase letter takes precedence.
- For example, error messages are normally displayed as standout text.
- So if both "s" and "E" are given a color, the "E" color applies
- to error messages, and the "s" color applies to other standout text.
- The "d" and "u" letters refer to bold and underline text formed by
- overstriking with backspaces (see the \-U option),
- not to text using ANSI escape sequences with the \-R option.
- .PP
- A lowercase letter may be followed by a + to indicate that
- the normal format change and the specified color should both be used.
- For example, \-Dug displays underlined text as green without underlining;
- the green color has replaced the usual underline formatting.
- But \-Du+g displays underlined text as both green and in underlined format.
- .PP
- \fIcolor\fP is either a 4-bit color string or an 8-bit color string:
- .PP
- A 4-bit color string is zero, one or two characters, where
- the first character specifies the foreground color and
- the second specifies the background color as follows:
- .IP "b"
- Blue
- .IP "c"
- Cyan
- .IP "g"
- Green
- .IP "k"
- Black
- .IP "m"
- Magenta
- .IP "r"
- Red
- .IP "w"
- White
- .IP "y"
- Yellow
- .PP
- The corresponding uppercase letter denotes a brighter shade of the color.
- For example, \-DNGk displays line numbers as bright green text on a black
- background, and \-DEbR displays error messages as blue text on a
- bright red background.
- If either character is a "-" or is omitted, the corresponding color
- is set to that of normal text.
- .PP
- An 8-bit color string is one or two decimal integers separated by a dot,
- where the first integer specifies the foreground color and
- the second specifies the background color.
- Each integer is a value between 0 and 255 inclusive which selects
- a "CSI 38;5" color value (see
- .br
- .nh
- https://en.wikipedia.org/wiki/ANSI_escape_code#SGR)
- .hy
- If either integer is a "-" or is omitted,
- the corresponding color is set to that of normal text.
- On MS-DOS versions of
- .BR less ,
- 8-bit color is not supported; instead, decimal values are interpreted as 4-bit
- CHAR_INFO.Attributes values
- (see
- .br
- .nh
- https://docs.microsoft.com/en-us/windows/console/char-info-str).
- .hy
- .PP
- On MS-DOS only, the \-Da option may be used to specify strict parsing of
- ANSI color (SGR) sequences when the \-R option is used.
- Without this option, sequences that change text attributes
- (bold, underline, etc.) may clear the text color.
- .RE
- .IP "\-e or \-\-quit-at-eof"
- Causes
- .B less
- to automatically exit
- the second time it reaches end-of-file.
- By default, the only way to exit
- .B less
- is via the "q" command.
- .IP "\-E or \-\-QUIT-AT-EOF"
- Causes
- .B less
- to automatically exit the first time it reaches end-of-file.
- .IP "\-f or \-\-force"
- Forces non-regular files to be opened.
- (A non-regular file is a directory or a device special file.)
- Also suppresses the warning message when a binary file is opened.
- By default,
- .B less
- will refuse to open non-regular files.
- Note that some operating systems will not allow directories
- to be read, even if \-f is set.
- .IP "\-F or \-\-quit-if-one-screen"
- Causes
- .B less
- to automatically exit
- if the entire file can be displayed on the first screen.
- .IP "\-g or \-\-hilite-search"
- Normally,
- .B less
- will highlight ALL strings which match the last search command.
- The \-g option changes this behavior to highlight only the particular string
- which was found by the last search command.
- This can cause
- .B less
- to run somewhat faster than the default.
- .IP "\-G or \-\-HILITE-SEARCH"
- The \-G option suppresses all highlighting of strings found by search commands.
- .IP "\-h\fIn\fP or \-\-max-back-scroll=\fIn\fP"
- Specifies a maximum number of lines to scroll backward.
- If it is necessary to scroll backward more than \fIn\fP lines,
- the screen is repainted in a forward direction instead.
- (If the terminal does not have the ability to scroll
- backward, \-h0 is implied.)
- .IP "\-i or \-\-ignore-case"
- Causes searches to ignore case; that is,
- uppercase and lowercase are considered identical.
- This option is ignored if any uppercase letters
- appear in the search pattern;
- in other words,
- if a pattern contains uppercase letters, then that search does not ignore case.
- .IP "\-I or \-\-IGNORE-CASE"
- Like \-i, but searches ignore case even if
- the pattern contains uppercase letters.
- .IP "\-j\fIn\fP or \-\-jump-target=\fIn\fP"
- Specifies a line on the screen where the "target" line
- is to be positioned.
- The target line is the line specified by any command to
- search for a pattern, jump to a line number,
- jump to a file percentage or jump to a tag.
- The screen line may be specified by a number: the top line on the screen
- is 1, the next is 2, and so on.
- The number may be negative to specify a line relative to the bottom
- of the screen: the bottom line on the screen is \-1, the second
- to the bottom is \-2, and so on.
- Alternately, the screen line may be specified as a fraction of the height
- of the screen, starting with a decimal point: \&.5 is in the middle of the
- screen, \&.3 is three tenths down from the first line, and so on.
- If the line is specified as a fraction, the actual line number
- is recalculated if the terminal window is resized.
- If any form of the \-j option is used,
- repeated forward searches (invoked with "n" or "N")
- begin at the line immediately after the target line,
- and repeated backward searches begin at the target line,
- unless changed by \-a or \-A.
- For example, if "\-j4" is used, the target line is the
- fourth line on the screen, so forward searches begin at the fifth line
- on the screen.
- However nonrepeated searches (invoked with "/" or "?")
- always begin at the start or end of the current screen respectively.
- .IP "\-J or \-\-status-column"
- Displays a status column at the left edge of the screen.
- The character displayed in the status column may be one of:
- .RS
- .IP ">"
- The line is chopped with the \-S option, and
- the text that is chopped off beyond the right edge of the screen
- contains a match for the current search.
- .IP "<"
- The line is horizontally shifted, and
- the text that is shifted beyond the left side of the screen
- contains a match for the current search.
- .IP "="
- The line is both chopped and shifted,
- and there are matches beyond both sides of the screen.
- .IP "*"
- There are matches in the visible part of the line
- but none to the right or left of it.
- .IP "a-z, A-Z"
- The line has been marked with the corresponding letter via the m command.
- .RE
- .IP "\-k\fIfilename\fP or \-\-lesskey-file=\fIfilename\fP"
- Causes
- .B less
- to open and interpret the named file as a
- .BR lesskey (1)
- binary file.
- Multiple \-k options may be specified.
- If the LESSKEY or LESSKEY_SYSTEM environment variable is set, or
- if a lesskey file is found in a standard place (see KEY BINDINGS),
- it is also used as a
- .B lesskey
- file.
- .IP "\-\-lesskey-src=\fIfilename\fP"
- Causes
- .B less
- to open and interpret the named file as a
- .BR lesskey (1)
- source file.
- If the LESSKEYIN or LESSKEYIN_SYSTEM environment variable is set, or
- if a lesskey source file is found in a standard place (see KEY BINDINGS),
- it is also used as a
- .I "lesskey source"
- file.
- Prior to version 582, the
- .B lesskey
- program needed to be run to convert a
- .I "lesskey source"
- file to a
- .I "lesskey binary"
- file for
- .B less
- to use.
- Newer versions of
- .B less
- read the
- .I "lesskey source"
- file directly and ignore the binary file if the source file exists.
- .IP "\-K or \-\-quit-on-intr"
- Causes
- .B less
- to exit immediately (with status 2)
- when an interrupt character (usually \(haC) is typed.
- Normally, an interrupt character causes
- .B less
- to stop whatever it is doing and return to its command prompt.
- Note that use of this option makes it impossible to return to the
- command prompt from the "F" command.
- .IP "\-L or \-\-no-lessopen"
- Ignore the LESSOPEN environment variable
- (see the INPUT PREPROCESSOR section below).
- This option can be set from within
- .BR less ,
- but it will apply only to files opened subsequently, not to the
- file which is currently open.
- .IP "\-m or \-\-long-prompt"
- Causes
- .B less
- to prompt verbosely (like
- .BR more (1)),
- with the percent into the file.
- By default,
- .B less
- prompts with a colon.
- .IP "\-M or \-\-LONG-PROMPT"
- Causes
- .B less
- to prompt even more verbosely than
- .BR more (1).
- .IP "\-n or \-\-line-numbers"
- Suppresses line numbers.
- The default (to use line numbers) may cause
- .B less
- to run more slowly in some cases, especially with a very large input file.
- Suppressing line numbers with the \-n option will avoid this problem.
- Using line numbers means: the line number will be displayed in the verbose
- prompt and in the = command,
- and the v command will pass the current line number to the editor
- (see also the discussion of LESSEDIT in PROMPTS below).
- .IP "\-N or \-\-LINE-NUMBERS"
- Causes a line number to be displayed at the beginning of
- each line in the display.
- .IP "\-o\fIfilename\fP or \-\-log-file=\fIfilename\fP"
- Causes
- .B less
- to copy its input to the named file as it is being viewed.
- This applies only when the input file is a pipe,
- not an ordinary file.
- If the file already exists,
- .B less
- will ask for confirmation before overwriting it.
- .IP "\-O\fIfilename\fP or \-\-LOG-FILE=\fIfilename\fP"
- The \-O option is like \-o, but it will overwrite an existing
- file without asking for confirmation.
- .sp
- If no log file has been specified,
- the \-o and \-O options can be used from within
- .B less
- to specify a log file.
- Without a file name, they will simply report the name of the log file.
- The "s" command is equivalent to specifying \-o from within
- .BR less .
- .IP "\-p\fIpattern\fP or \-\-pattern=\fIpattern\fP"
- The \-p option on the command line is equivalent to
- specifying +/\fIpattern\fP;
- that is, it tells
- .B less
- to start at the first occurrence of \fIpattern\fP in the file.
- .IP "\-P\fIprompt\fP or \-\-prompt=\fIprompt\fP"
- Provides a way to tailor the three prompt
- styles to your own preference.
- This option would normally be put in the LESS environment
- variable, rather than being typed in with each
- .B less
- command.
- Such an option must either be the last option in the LESS variable,
- or be terminated by a dollar sign.
- \-Ps followed by a string changes the default (short) prompt
- to that string.
- \-Pm changes the medium (\-m) prompt.
- \-PM changes the long (\-M) prompt.
- \-Ph changes the prompt for the help screen.
- \-P= changes the message printed by the = command.
- \-Pw changes the message printed while waiting for data (in the "F" command).
- .sp 1
- All prompt strings consist of a sequence of
- letters and special escape sequences.
- See the section on PROMPTS for more details.
- .IP "\-q or \-\-quiet or \-\-silent"
- Causes moderately "quiet" operation:
- the terminal bell is not rung
- if an attempt is made to scroll past the end of the file
- or before the beginning of the file.
- If the terminal has a "visual bell", it is used instead.
- The bell will be rung on certain other errors,
- such as typing an invalid character.
- The default is to ring the terminal bell in all such cases.
- .IP "\-Q or \-\-QUIET or \-\-SILENT"
- Causes totally "quiet" operation:
- the terminal bell is never rung.
- If the terminal has a "visual bell", it is used in all cases
- where the terminal bell would have been rung.
- .IP "\-r or \-\-raw-control-chars"
- Causes "raw" control characters to be displayed.
- The default is to display control characters using the caret notation;
- for example, a control-A (octal 001) is displayed as "\(haA"
- (with some exceptions as described under the \-U option).
- Warning: when the \-r option is used,
- .B less
- cannot keep track of the actual appearance of the screen
- (since this depends on how the screen responds to
- each type of control character).
- Thus, various display problems may result,
- such as long lines being split in the wrong place.
- .sp
- USE OF THE \-r OPTION IS NOT RECOMMENDED.
- .IP "\-R or \-\-RAW-CONTROL-CHARS"
- Like \-r, but only ANSI "color" escape sequences and OSC 8 hyperlink
- sequences are output in "raw" form.
- Unlike \-r, the screen appearance is maintained correctly,
- provided that there are no escape sequences in the file
- other than these types of escape sequences.
- Color escape sequences are only supported when the color
- is changed within one line, not across lines.
- In other words, the beginning of each line is assumed to be
- normal (non-colored), regardless of any escape sequences in previous lines.
- For the purpose of keeping track of screen appearance,
- these escape sequences are assumed to not move the cursor.
- .sp
- OSC 8 hyperlinks are sequences of the form:
- .sp
- ESC ] 8 ; \&...\& \\7
- .sp
- The terminating sequence may be either a BEL character (\\7)
- or the two-character sequence "ESC \\".
- .sp
- ANSI color escape sequences are sequences of the form:
- .sp
- ESC [ \&...\& m
- .sp
- where the "...\&" is zero or more color specification characters.
- You can make
- .B less
- think that characters other than "m" can end ANSI color escape sequences
- by setting the environment variable LESSANSIENDCHARS to the list of
- characters which can end a color escape sequence.
- And you can make
- .B less
- think that characters other than the standard ones may appear between
- the ESC and the m by setting the environment variable LESSANSIMIDCHARS
- to the list of characters which can appear.
- .IP "\-s or \-\-squeeze-blank-lines"
- Causes consecutive blank lines to be squeezed into a single blank line.
- This is useful when viewing
- .B nroff
- output.
- .IP "\-S or \-\-chop-long-lines"
- Causes lines longer than the screen width to be
- chopped (truncated) rather than wrapped.
- That is, the portion of a long line that does not fit in
- the screen width is not displayed until you press RIGHT-ARROW.
- The default is to wrap long lines; that is, display the remainder
- on the next line.
- See also the \-\-wordwrap option.
- .IP "\-t\fItag\fP or \-\-tag=\fItag\fP"
- The \-t option, followed immediately by a TAG,
- will edit the file containing that tag.
- For this to work, tag information must be available;
- for example, there may be a file in the current directory called "tags",
- which was previously built by
- .BR ctags (1)
- or an equivalent command.
- If the environment variable LESSGLOBALTAGS is set, it is taken to be
- the name of a command compatible with
- .BR global (1),
- and that command is executed to find the tag.
- (See
- .nh
- http://www.gnu.org/software/global/global.html).
- .hy
- The \-t option may also be specified from within
- .B less
- (using the \- command) as a way of examining a new file.
- The command ":t" is equivalent to specifying \-t from within
- .BR less .
- .IP "\-T\fItagsfile\fP or \-\-tag-file=\fItagsfile\fP"
- Specifies a tags file to be used instead of "tags".
- .IP "\-u or \-\-underline-special"
- Causes backspaces and carriage returns to be treated as printable characters;
- that is, they are sent to the terminal when they appear in the input.
- .IP "\-U or \-\-UNDERLINE-SPECIAL"
- Causes backspaces, tabs, carriage returns and "formatting characters"
- (as defined by Unicode) to be treated as control characters;
- that is, they are handled as specified by the \-r option.
- .sp
- By default, if neither \-u nor \-U is given,
- backspaces which appear adjacent to an underscore character
- are treated specially:
- the underlined text is displayed
- using the terminal's hardware underlining capability.
- Also, backspaces which appear between two identical characters
- are treated specially:
- the overstruck text is printed
- using the terminal's hardware boldface capability.
- Other backspaces are deleted, along with the preceding character.
- Carriage returns immediately followed by a newline are deleted.
- Other carriage returns are handled as specified by the \-r option.
- Unicode formatting characters, such as the Byte Order Mark,
- are sent to the terminal.
- Text which is overstruck or underlined can be searched for
- if neither \-u nor \-U is in effect.
- .sp
- See also the \-\-proc-backspace, \-\-proc-tab,
- and \-\-proc-return options.
- .IP "\-V or \-\-version"
- Displays the version number of
- .BR less .
- .IP "\-w or \-\-hilite-unread"
- Temporarily highlights the first "new" line after a forward movement
- of a full page.
- The first "new" line is the line immediately following the line previously
- at the bottom of the screen.
- Also highlights the target line after a g or p command.
- The highlight is removed at the next command which causes movement.
- If the \-\-status-line option is in effect, the entire line
- (the width of the screen) is highlighted.
- Otherwise, only the text in the line is highlighted,
- unless the \-J option is in effect,
- in which case only the status column is highlighted.
- .IP "\-W or \-\-HILITE-UNREAD"
- Like \-w, but temporarily highlights the first new line after any
- forward movement command larger than one line.
- .IP "\-x\fIn\fP,...\& or \-\-tabs=\fIn\fP,..."
- Sets tab stops.
- If only one \fIn\fP is specified, tab stops are set at multiples of \fIn\fP.
- If multiple values separated by commas are specified, tab stops
- are set at those positions, and then continue with the same spacing as the
- last two.
- For example, "-x9,17" will set tabs at positions 9, 17, 25, 33, etc.
- The default for \fIn\fP is 8.
- .IP "\-X or \-\-no-init"
- Disables sending the termcap initialization and deinitialization strings
- to the terminal.
- This is sometimes desirable if the deinitialization string does
- something unnecessary, like clearing the screen.
- .IP "\-y\fIn\fP or \-\-max-forw-scroll=\fIn\fP"
- Specifies a maximum number of lines to scroll forward.
- If it is necessary to scroll forward more than \fIn\fP lines,
- the screen is repainted instead.
- The \-c or \-C option may be used to repaint from the top of
- the screen if desired.
- By default, any forward movement causes scrolling.
- .IP "\-z\fIn\fP or \-\-window=\fIn\fP or \-\fIn\fP"
- Changes the default scrolling window size to \fIn\fP lines.
- The default is one screenful.
- The z and w commands can also be used to change the window size.
- The "z" may be omitted for compatibility with some versions of
- .BR more (1).
- If the number
- .I n
- is negative, it indicates
- .I n
- lines less than the current screen size.
- For example, if the screen is 24 lines, \fI\-z\-4\fP sets the
- scrolling window to 20 lines. If the screen is resized to 40 lines,
- the scrolling window automatically changes to 36 lines.
- .IP "\-\(dq\fIcc\fP\ or\ \-\-quotes=\fIcc\fP"
- Changes the filename quoting character.
- This may be necessary if you are trying to name a file
- which contains both spaces and quote characters.
- Followed by a single character, this changes the quote character to that
- character.
- Filenames containing a space should then be surrounded by that character
- rather than by double quotes.
- Followed by two characters, changes the open quote to the first character,
- and the close quote to the second character.
- Filenames containing a space should then be preceded by the open quote
- character and followed by the close quote character.
- Note that even after the quote characters are changed, this option
- remains \-" (a dash followed by a double quote).
- .IP "\-\(ti or \-\-tilde"
- Normally lines after end of file are displayed as a single tilde (\(ti).
- This option causes lines after end of file to be displayed as blank lines.
- .IP "\-# or \-\-shift"
- Specifies the default number of positions to scroll horizontally
- in the RIGHTARROW and LEFTARROW commands.
- If the number specified is zero, it sets the default number of
- positions to one half of the screen width.
- Alternately, the number may be specified as a fraction of the width
- of the screen, starting with a decimal point: \&.5 is half of the
- screen width, \&.3 is three tenths of the screen width, and so on.
- If the number is specified as a fraction, the actual number of
- scroll positions is recalculated if the terminal window is resized.
- .IP "\-\-exit-follow-on-close"
- When using the "F" command on a pipe,
- .B less
- will automatically stop waiting for more data when the input side of the
- pipe is closed.
- .IP "\-\-file-size"
- If \-\-file-size is specified,
- .B less
- will determine the size of the file
- immediately after opening the file.
- Then the "=" command will display the number of lines in the file.
- Normally this is not done, because it can be slow if the input file
- is non-seekable (such as a pipe) and is large.
- .IP "\-\-follow-name"
- Normally, if the input file is renamed while an F command is executing,
- .B less
- will continue to display the contents of the original file despite
- its name change.
- If \-\-follow-name is specified, during an F command
- .B less
- will periodically attempt to reopen the file by name.
- If the reopen succeeds and the file is a different file from the original
- (which means that a new file has been created
- with the same name as the original (now renamed) file),
- .B less
- will display the contents of that new file.
- .IP "\-\-header=\fIN[,M]\fP"
- Sets the number of header lines and columns displayed on the screen.
- The value may be of the form "N,M" where N and M are integers,
- to set the header lines to N and the header columns to M,
- or it may be a single integer "N" which sets the header lines to N
- and the header columns to zero,
- or it may be ",M" which sets the header columns to M and the
- header lines to zero.
- When N is nonzero, the first N lines at the top
- of the screen are replaced with the first N lines of the file,
- regardless of what part of the file are being viewed.
- When M is nonzero, the characters displayed at the
- beginning of each line are replaced with the first M characters of the line,
- even if the rest of the line is scrolled horizontally.
- If either N or M is zero,
- .B less
- stops displaying header lines or columns, respectively.
- (Note that it may be necessary to change the setting of the \-j option
- to ensure that the target line is not obscured by the header line(s).)
- .IP "\-\-incsearch"
- Subsequent search commands will be "incremental"; that is,
- .B less
- will advance to the next line containing the search pattern
- as each character of the pattern is typed in.
- .IP "\-\-intr=\fIc\fP"
- Use the character \fIc\fP instead of \(haX to interrupt a read
- when the "Waiting for data" message is displayed.
- \fIc\fP must be an ASCII character; that is, one with a value
- between 1 and 127 inclusive.
- A caret followed by a single character can be used
- to specify a control character.
- .IP "\-\-line-num-width=\fIn\fP"
- Sets the minimum width of the line number field when the \-N option is in effect
- to \fIn\fP characters.
- The default is 7.
- .IP "\-\-modelines=\fIn\fP"
- .RS
- Before displaying a file,
- .B less
- will read the first \fIn\fP lines to try to find a vim-compatible
- .IR modeline .
- If \fIn\fP is zero,
- .B less
- does not try to find modelines.
- By using a modeline, the file itself can specify the tab stops
- that should be used when viewing it.
- .PP
- A modeline contains, anywhere in the line,
- a program name ("vi", "vim", "ex", or "less"),
- followed by a colon,
- possibly followed by the word "set",
- and finally followed by zero or more option settings.
- If the word "set" is used,
- option settings are separated by spaces, and end at the first colon.
- If the word "set" is not used,
- option settings may be separated by either spaces or colons.
- The word "set" is required if the program name is "less"
- but optional if any of the other three names are used.
- If any option setting is of the form "tabstop=\fIn\fP" or "ts=\fIn\fP",
- then tab stops are automatically set as if \-\-tabs=\fIn\fP had been given.
- See the \-\-tabs description for acceptable values of \fIn\fP.
- .RE
- .IP "\-\-mouse"
- Enables mouse input:
- scrolling the mouse wheel down moves forward in the file,
- scrolling the mouse wheel up moves backwards in the file,
- and clicking the mouse sets the "#" mark to the line
- where the mouse is clicked.
- The number of lines to scroll when the wheel is moved
- can be set by the \-\-wheel-lines option.
- Mouse input works only on terminals which support X11 mouse reporting,
- and on the Windows version of
- .BR less .
- .IP "\-\-MOUSE"
- Like \-\-mouse, except the direction scrolled
- on mouse wheel movement is reversed.
- .IP "\-\-no-keypad"
- Disables sending the keypad initialization and deinitialization strings
- to the terminal.
- This is sometimes useful if the keypad strings make the numeric
- keypad behave in an undesirable manner.
- .IP "\-\-no-histdups"
- This option changes the behavior so that if a search string or
- file name is typed in, and the same string is already in the history list,
- the existing copy is removed from the history list before the new one is added.
- Thus, a given string will appear only once in the history list.
- Normally, a string may appear multiple times.
- .IP "\-\-no-number-headers"
- Header lines (defined via the \-\-header option) are not assigned line numbers.
- Line number 1 is assigned to the first line after any header lines.
- .IP "\-\-no-search-headers"
- Searches do not include header lines or header columns.
- .IP "\-\-no-vbell"
- Disables the terminal's visual bell.
- .IP "\-\-proc-backspace"
- If set, backspaces are handled as if neither the \-u option
- nor the \-U option were set.
- That is, a backspace adjacent to an underscore causes text to be
- displayed in underline mode, and a backspace between identical
- characters cause text to be displayed in boldface mode.
- This option overrides the \-u and \-U options, so that display of
- backspaces can be controlled separate from tabs and carriage returns.
- If not set, backspace display is controlled by the \-u and \-U options.
- .IP "\-\-PROC-BACKSPACE"
- If set, backspaces are handled as if the \-U option were set;
- that is backspaces are treated as control characters.
- .IP "\-\-proc-return"
- If set, carriage returns are handled as if neither the \-u option
- nor the \-U option were set.
- That is, a carriage return immediately before a newline is deleted.
- This option overrides the \-u and \-U options, so that display of
- carriage returns can be controlled separate from that of backspaces and tabs.
- If not set, carriage return display is controlled by the \-u and \-U options.
- .IP "\-\-PROC-RETURN"
- If set, carriage returns are handled as if the \-U option were set;
- that is carriage returns are treated as control characters.
- .IP "\-\-proc-tab"
- If set, tabs are handled as if the \-U option were not set.
- That is, tabs are expanded to spaces.
- This option overrides the \-U option, so that display of
- tabs can be controlled separate from that of backspaces and carriage returns.
- If not set, tab display is controlled by the \-U options.
- .IP "\-\-PROC-TAB"
- If set, tabs are handled as if the \-U option were set;
- that is tabs are treated as control characters.
- .IP "\-\-redraw-on-quit"
- When quitting, after sending the terminal deinitialization string,
- redraws the entire last screen.
- On terminals whose terminal deinitialization string causes the
- terminal to switch from an alternate screen,
- this makes the last screenful of the current file remain visible after
- .B less
- has quit.
- .IP "\-\-rscroll=\fIc\fP"
- This option changes the character used to mark truncated lines.
- It may begin with a two-character attribute indicator like LESSBINFMT does.
- If there is no attribute indicator, standout is used.
- If set to "\-", truncated lines are not marked.
- .IP "\-\-save-marks"
- Save marks in the history file, so marks are retained
- across different invocations of
- .BR less .
- .IP "\-\-search-options=\fI...\fP"
- Sets default search modifiers.
- The value is a string of one or more of the characters
- E, F, K, N, R or W.
- Setting any of these has the same effect as typing that
- control character at the beginning of every search pattern.
- For example, setting \-\-search-options=W is the same as
- typing \(haW at the beginning of every pattern.
- The value may also contain a digit between 1 and 5,
- which has the same effect as typing \(haS followed by that digit
- at the beginning of every search pattern.
- The value "-" disables all default search modifiers.
- .IP "\-\-show-preproc-errors"
- If a preprocessor produces data,
- then exits with a non-zero exit code,
- .B less
- will display a warning.
- .IP "\-\-status-col-width=\fIn\fP"
- Sets the width of the status column when the \-J option is in effect.
- The default is 2 characters.
- .IP "\-\-status-line"
- If a line is marked, the entire line (rather than just the status column)
- is highlighted.
- Also lines highlighted due to the \-w option will have
- the entire line highlighted.
- If \-\-use-color is set, the line is colored rather than highlighted.
- .IP "\-\-use-backslash"
- This option changes the interpretations of options which follow this one.
- After the \-\-use-backslash option, any backslash in an option string is
- removed and the following character is taken literally.
- This allows a dollar sign to be included in option strings.
- .IP "\-\-use-color"
- Enables colored text in various places.
- The \-D option can be used to change the colors.
- Colored text works only if the terminal supports
- ANSI color escape sequences (as defined in ECMA-48 SGR;
- see
- .br
- .nh
- https://www.ecma-international.org/publications-and-standards/standards/ecma-48).
- .hy
- .IP "\-\-wheel-lines=\fIn\fP"
- Set the number of lines to scroll when the mouse wheel is scrolled
- and the \-\-mouse or \-\-MOUSE option is in effect.
- The default is 1 line.
- .IP "\-\-wordwrap"
- When the \-S option is not in use,
- wrap each line at a space or tab if possible,
- so that a word is not split between two lines.
- The default is to wrap at any character.
- .IP \-\-
- A command line argument of "\-\-" marks the end of option arguments.
- Any arguments following this are interpreted as filenames.
- This can be useful when viewing a file whose name begins with a "\-" or "+".
- .IP +
- If a command line option begins with \fB+\fP,
- the remainder of that option is taken to be an initial command to
- .BR less .
- For example, +G tells
- .B less
- to start at the end of the file rather than the beginning,
- and +/xyz tells it to start at the first occurrence of "xyz" in the file.
- As a special case, +<number> acts like +<number>g;
- that is, it starts the display at the specified line number
- (however, see the caveat under the "g" command above).
- If the option starts with ++, the initial command applies to
- every file being viewed, not just the first one.
- The + command described previously
- may also be used to set (or change) an initial command for every file.
- .
- .SH "LINE EDITING"
- When entering a command line at the bottom of the screen
- (for example, a filename for the :e command,
- or the pattern for a search command),
- certain keys can be used to manipulate the command line.
- Most commands have an alternate form in [ brackets ] which can be used if
- a key does not exist on a particular keyboard.
- (Note that the forms beginning with ESC do not work
- in some MS-DOS and Windows systems because ESC is the line erase character.)
- Any of these special keys may be entered literally by preceding
- it with the "literal" character, either \(haV or \(haA.
- A backslash itself may also be entered literally by entering two backslashes.
- .IP "LEFTARROW [ ESC-h ]"
- Move the cursor one space to the left.
- .IP "RIGHTARROW [ ESC-l ]"
- Move the cursor one space to the right.
- .IP "\(haLEFTARROW [ ESC-b or ESC-LEFTARROW ]"
- (That is, CONTROL and LEFTARROW simultaneously.)
- Move the cursor one word to the left.
- .IP "\(haRIGHTARROW [ ESC-w or ESC-RIGHTARROW ]"
- (That is, CONTROL and RIGHTARROW simultaneously.)
- Move the cursor one word to the right.
- .IP "HOME [ ESC-0 ]"
- Move the cursor to the beginning of the line.
- .IP "END [ ESC-$ ]"
- Move the cursor to the end of the line.
- .IP "BACKSPACE"
- Delete the character to the left of the cursor,
- or cancel the command if the command line is empty.
- .IP "DELETE or [ ESC-x ]"
- Delete the character under the cursor.
- .IP "\(haBACKSPACE [ ESC-BACKSPACE ]"
- (That is, CONTROL and BACKSPACE simultaneously.)
- Delete the word to the left of the cursor.
- .IP "\(haDELETE [ ESC-X or ESC-DELETE ]"
- (That is, CONTROL and DELETE simultaneously.)
- Delete the word under the cursor.
- .IP "UPARROW [ ESC-k ]"
- Retrieve the previous command line.
- If you first enter some text and then press UPARROW,
- it will retrieve the previous command which begins with that text.
- .IP "DOWNARROW [ ESC-j ]"
- Retrieve the next command line.
- If you first enter some text and then press DOWNARROW,
- it will retrieve the next command which begins with that text.
- .IP "TAB"
- Complete the partial filename to the left of the cursor.
- If it matches more than one filename, the first match
- is entered into the command line.
- Repeated TABs will cycle thru the other matching filenames.
- If the completed filename is a directory, a "/" is appended to the filename.
- (On MS-DOS systems, a "\e" is appended.)
- The environment variable LESSSEPARATOR can be used to specify a
- different character to append to a directory name.
- .IP "BACKTAB [ ESC-TAB ]"
- Like, TAB, but cycles in the reverse direction thru the matching filenames.
- .IP "\(haL"
- Complete the partial filename to the left of the cursor.
- If it matches more than one filename, all matches are entered into
- the command line (if they fit).
- .IP "\(haU (Unix and OS/2) or ESC (MS-DOS)"
- Delete the entire command line,
- or cancel the command if the command line is empty.
- If you have changed your line-kill character in Unix to something
- other than \(haU, that character is used instead of \(haU.
- .IP "\(haG"
- Delete the entire command line and return to the main prompt.
- .
- .SH "KEY BINDINGS"
- You may define your own
- .B less
- commands by creating a lesskey source file.
- This file specifies a set of command keys and an action
- associated with each key.
- You may also change the line-editing keys (see LINE EDITING),
- and set environment variables used by
- .BR less .
- See the
- .BR lesskey (1)
- manual page for details about the file format.
- .PP
- If the environment variable LESSKEYIN is set,
- .B less
- uses that as the name of the lesskey source file.
- Otherwise,
- .B less
- looks in a standard place for the lesskey source file:
- On Unix systems,
- .B less
- looks for a lesskey file called "$XDG_CONFIG_HOME/lesskey" or "$HOME/.config/lesskey" or "$HOME/.lesskey".
- On MS-DOS and Windows systems,
- .B less
- looks for a lesskey file called "$HOME/_lesskey", and if it is not found there,
- then looks for a lesskey file called "_lesskey" in any directory specified
- in the PATH environment variable.
- On OS/2 systems,
- .B less
- looks for a lesskey file called "$HOME/lesskey.ini", and if it is not found,
- then looks for a lesskey file called "lesskey.ini" in any directory specified
- in the INIT environment variable, and if it not found there,
- then looks for a lesskey file called "lesskey.ini" in any directory specified
- in the PATH environment variable.
- .PP
- A system-wide lesskey source file may also be set up to provide key bindings.
- If a key is defined in both a local lesskey file and in the
- system-wide file, key bindings in the local file take precedence over
- those in the system-wide file.
- If the environment variable LESSKEYIN_SYSTEM is set,
- .B less
- uses that as the name of the system-wide lesskey file.
- Otherwise,
- .B less
- looks in a standard place for the system-wide lesskey file:
- On Unix systems, the system-wide lesskey file is /usr/local/etc/syslesskey.
- (However, if
- .B less
- was built with a different sysconf directory than /usr/local/etc,
- that directory is where the sysless file is found.)
- On MS-DOS and Windows systems, the system-wide lesskey file is c:\e_syslesskey.
- On OS/2 systems, the system-wide lesskey file is c:\esyslesskey.ini.
- .PP
- Previous versions of
- .B less
- (before v582) used lesskey files with a binary format, produced by the
- .B lesskey
- program. It is no longer necessary to use the
- .B lesskey
- program.
- .
- .SH "INPUT PREPROCESSOR"
- You may define an "input preprocessor" for
- .BR less .
- Before
- .B less
- opens a file, it first gives your input preprocessor a chance to modify the
- way the contents of the file are displayed.
- An input preprocessor is simply an executable program (or shell script),
- which writes the contents of the file to a different file,
- called the replacement file.
- The contents of the replacement file are then displayed
- in place of the contents of the original file.
- However, it will appear to the user as if the original file is opened;
- that is,
- .B less
- will display the original filename as the name of the current file.
- .PP
- An input preprocessor receives one command line argument, the original filename,
- as entered by the user.
- It should create the replacement file, and when finished,
- print the name of the replacement file to its standard output.
- If the input preprocessor does not output a replacement filename,
- .B less
- uses the original file, as normal.
- The input preprocessor is not called when viewing standard input.
- To set up an input preprocessor, set the LESSOPEN environment variable
- to a command line which will invoke your input preprocessor.
- This command line should include one occurrence of the string "%s",
- which will be replaced by the filename
- when the input preprocessor command is invoked.
- .PP
- When
- .B less
- closes a file opened in such a way, it will call another program,
- called the input postprocessor,
- which may perform any desired clean-up action (such as deleting the
- replacement file created by LESSOPEN).
- This program receives two command line arguments, the original filename
- as entered by the user, and the name of the replacement file.
- To set up an input postprocessor, set the LESSCLOSE environment variable
- to a command line which will invoke your input postprocessor.
- It may include two occurrences of the string "%s";
- the first is replaced with the original name of the file and
- the second with the name of the replacement file,
- which was output by LESSOPEN.
- .PP
- For example, on many Unix systems, these two scripts will allow you
- to keep files in compressed format, but still let
- .B less
- view them directly:
- .PP
- lessopen.sh:
- .br
- #! /bin/sh
- .br
- case "$1" in
- .br
- *.Z) TEMPFILE=$(mktemp)
- .br
- uncompress \-c $1 >$TEMPFILE 2>/dev/null
- .br
- if [ \-s $TEMPFILE ]; then
- .br
- echo $TEMPFILE
- .br
- else
- .br
- rm \-f $TEMPFILE
- .br
- fi
- .br
- ;;
- .br
- esac
- .PP
- lessclose.sh:
- .br
- #! /bin/sh
- .br
- rm $2
- .PP
- To use these scripts, put them both where they can be executed and
- set LESSOPEN="lessopen.sh\ %s", and
- LESSCLOSE="lessclose.sh\ %s\ %s".
- More complex LESSOPEN and LESSCLOSE scripts may be written
- to accept other types of compressed files, and so on.
- .PP
- It is also possible to set up an input preprocessor to
- pipe the file data directly to
- .BR less ,
- rather than putting the data into a replacement file.
- This avoids the need to decompress the entire file before
- starting to view it.
- An input preprocessor that works this way is called an input pipe.
- An input pipe, instead of writing the name of a replacement file on
- its standard output,
- writes the entire contents of the replacement file on its standard output.
- If the input pipe does not write any characters on its standard output,
- then there is no replacement file and
- .B less
- uses the original file, as normal.
- To use an input pipe,
- make the first character in the LESSOPEN environment variable a
- vertical bar (|) to signify that the input preprocessor is an input pipe.
- As with non-pipe input preprocessors, the command string must contain one
- occurrence of %s, which is replaced with the filename of the input file.
- .PP
- For example, on many Unix systems, this script will work like the
- previous example scripts:
- .PP
- lesspipe.sh:
- .br
- #! /bin/sh
- .br
- case "$1" in
- .br
- *.Z) uncompress \-c $1 2>/dev/null
- .br
- ;;
- .br
- *) exit 1
- .br
- ;;
- .br
- esac
- .br
- exit $?
- .br
- .PP
- To use this script, put it where it can be executed and set
- LESSOPEN="|lesspipe.sh %s".
- .PP
- Note that a preprocessor cannot output an empty file, since that
- is interpreted as meaning there is no replacement, and
- the original file is used.
- To avoid this, if LESSOPEN starts with two vertical bars,
- the exit status of the script determines the behavior when the output is empty.
- If the output is empty and the exit status is zero,
- the empty output is considered to be replacement text.
- If the output is empty and the exit status is nonzero,
- the original file is used.
- For compatibility with previous versions of
- .BR less ,
- if LESSOPEN starts with only one vertical bar, the exit status
- of the preprocessor is ignored.
- .PP
- When an input pipe is used, a LESSCLOSE postprocessor can be used,
- but it is usually not necessary since there is no replacement file
- to clean up.
- In this case, the replacement file name passed to the LESSCLOSE
- postprocessor is "\-".
- .PP
- For compatibility with previous versions of
- .BR less ,
- the input preprocessor or pipe is not used if
- .B less
- is viewing standard input.
- However, if the first character of LESSOPEN is a dash (\-),
- the input preprocessor is used on standard input as well as other files.
- In this case, the dash is not considered to be part of
- the preprocessor command.
- If standard input is being viewed, the input preprocessor is passed
- a file name consisting of a single dash.
- Similarly, if the first two characters of LESSOPEN are vertical bar and dash
- (|\-) or two vertical bars and a dash (||\-),
- the input pipe is used on standard input as well as other files.
- Again, in this case the dash is not considered to be part of
- the input pipe command.
- .
- .SH "NATIONAL CHARACTER SETS"
- There are three types of characters in the input file:
- .IP "normal characters"
- can be displayed directly to the screen.
- .IP "control characters"
- should not be displayed directly, but are expected to be found
- in ordinary text files (such as backspace and tab).
- .IP "binary characters"
- should not be displayed directly and are not expected to be found
- in text files.
- .PP
- A "character set" is simply a description of which characters are to
- be considered normal, control, and binary.
- The LESSCHARSET environment variable may be used to select a character set.
- Possible values for LESSCHARSET are:
- .IP ascii
- BS, TAB, NL, CR, and formfeed are control characters,
- all chars with values between 32 and 126 are normal,
- and all others are binary.
- .IP iso8859
- Selects an ISO 8859 character set.
- This is the same as ASCII, except characters between 160 and 255 are
- treated as normal characters.
- .IP latin1
- Same as iso8859.
- .IP latin9
- Same as iso8859.
- .IP dos
- Selects a character set appropriate for MS-DOS.
- .IP ebcdic
- Selects an EBCDIC character set.
- .IP IBM-1047
- Selects an EBCDIC character set used by OS/390 Unix Services.
- This is the EBCDIC analogue of latin1. You get similar results
- by setting either LESSCHARSET=IBM-1047 or LC_CTYPE=en_US
- in your environment.
- .IP koi8-r
- Selects a Russian character set.
- .IP next
- Selects a character set appropriate for NeXT computers.
- .IP utf-8
- Selects the UTF-8 encoding of the ISO 10646 character set.
- UTF-8 is special in that it supports multi-byte characters in the input file.
- It is the only character set that supports multi-byte characters.
- .IP windows
- Selects a character set appropriate for Microsoft Windows (cp 1251).
- .PP
- In rare cases, it may be desired to tailor
- .B less
- to use a character set other than the ones definable by LESSCHARSET.
- In this case, the environment variable LESSCHARDEF can be used
- to define a character set.
- It should be set to a string where each character in the string represents
- one character in the character set.
- The character ".\&" is used for a normal character, "c" for control,
- and "b" for binary.
- A decimal number may be used for repetition.
- For example, "bccc4b.\&" would mean character 0 is binary,
- 1, 2 and 3 are control, 4, 5, 6 and 7 are binary, and 8 is normal.
- All characters after the last are taken to be the same as the last,
- so characters 9 through 255 would be normal.
- (This is an example, and does not necessarily
- represent any real character set.)
- .PP
- This table shows the value of LESSCHARDEF which is equivalent
- to each of the possible values for LESSCHARSET:
- .
- .RS 5m
- .TS
- l l.
- ascii 8bcccbcc18b95.b
- dos 8bcccbcc12bc5b95.b.
- ebcdic 5bc6bcc7bcc41b.9b7.9b5.b..8b6.10b6.b9.7b
- 9.8b8.17b3.3b9.7b9.8b8.6b10.b.b.b.
- IBM-1047 4cbcbc3b9cbccbccbb4c6bcc5b3cbbc4bc4bccbc
- 191.b
- iso8859 8bcccbcc18b95.33b.
- koi8-r 8bcccbcc18b95.b128.
- latin1 8bcccbcc18b95.33b.
- next 8bcccbcc18b95.bb125.bb
- .TE
- .RE
- .PP
- If neither LESSCHARSET nor LESSCHARDEF is set,
- but any of the strings "UTF-8", "UTF8", "utf-8" or "utf8"
- is found in the LC_ALL, LC_CTYPE or LANG
- environment variables, then the default character set is utf-8.
- .PP
- If that string is not found, but your system supports the
- .B setlocale
- interface,
- .B less
- will use setlocale to determine the character set.
- setlocale is controlled by setting the LANG or LC_CTYPE environment
- variables.
- .PP
- Finally, if the
- .I setlocale
- interface is also not available, the default character set is latin1.
- .PP
- Control and binary characters are displayed in standout (reverse video).
- Each such character is displayed in caret notation if possible
- (e.g.\& \(haA for control-A). Caret notation is used only if
- inverting the 0100 bit results in a normal printable character.
- Otherwise, the character is displayed as a hex number in angle brackets.
- This format can be changed by
- setting the LESSBINFMT environment variable.
- LESSBINFMT may begin with a "*" and one character to select
- the display attribute:
- "*k" is blinking, "*d" is bold, "*u" is underlined, "*s" is standout,
- and "*n" is normal.
- If LESSBINFMT does not begin with a "*", normal attribute is assumed.
- The remainder of LESSBINFMT is a string which may include one
- printf-style escape sequence (a % followed by x, X, o, d, etc.).
- For example, if LESSBINFMT is "*u[%x]", binary characters
- are displayed in underlined hexadecimal surrounded by brackets.
- The default if no LESSBINFMT is specified is "*s<%02X>".
- Warning: the result of expanding the character via LESSBINFMT must
- be less than 31 characters.
- .PP
- When the character set is utf-8, the LESSUTFBINFMT environment variable
- acts similarly to LESSBINFMT but it applies to Unicode code points
- that were successfully decoded but are unsuitable for display (e.g.,
- unassigned code points).
- Its default value is "<U+%04lX>".
- Note that LESSUTFBINFMT and LESSBINFMT share their display attribute
- setting ("*x") so specifying one will affect both;
- LESSUTFBINFMT is read after LESSBINFMT so its setting, if any,
- will have priority.
- Problematic octets in a UTF-8 file (octets of a truncated sequence,
- octets of a complete but non-shortest form sequence, invalid octets,
- and stray trailing octets)
- are displayed individually using LESSBINFMT so as to facilitate diagnostic
- of how the UTF-8 file is ill-formed.
- .PP
- When the character set is utf-8, in rare cases it may be desirable to
- override the Unicode definition of the type of certain characters.
- For example, characters in a Private Use Area are normally treated as control
- characters, but if you are using a custom font with printable characters
- in that range, it may be desirable to tell
- .B less
- to treat such characters as printable.
- This can be done by setting the LESSUTFCHARDEF environment variable
- to a comma-separated list of
- .I "character type"
- definitions.
- Each character type definition consists of either one hexadecimal codepoint
- or a pair of codepoints separated by a dash,
- followed by a colon and a type character.
- Each hexadecimal codepoint may optionally be preceded by a "U" or "U+".
- If a pair of codepoints is given, the type is set for
- all characters inclusively between the two values.
- If there are multiple comma-separated codepoint values,
- they must be in ascending numerical order.
- The type character may be one of:
- .RS
- .IP "p"
- A normal printable character.
- .IP "w"
- A wide (2-space) printable character.
- .IP "b"
- A binary (non-printable) character.
- .IP "c"
- A composing (zero width) character.
- .RE
- .PP
- For example, setting LESSUTFCHARDEF to
- .nf
- .sp
- E000-F8FF:p,F0000-FFFFD:p,100000-10FFFD:p
- .sp
- .fi
- would make all Private Use Area characters be treated as printable.
- .SH "PROMPTS"
- The \-P option allows you to tailor the prompt to your preference.
- The string given to the \-P option replaces the specified prompt string.
- Certain characters in the string are interpreted specially.
- The prompt mechanism is rather complicated to provide flexibility,
- but the ordinary user need not understand the details of constructing
- personalized prompt strings.
- .sp
- A percent sign followed by a single character is expanded
- according to what the following character is.
- (References to the input file size below refer to the preprocessed size,
- if an input preprocessor is being used.)
- .IP "%b\fIX\fP"
- Replaced by the byte offset into the current input file.
- The b is followed by a single character (shown as \fIX\fP above)
- which specifies the line whose byte offset is to be used.
- If the character is a "t", the byte offset of the top line in the
- display is used,
- an "m" means use the middle line,
- a "b" means use the bottom line,
- a "B" means use the line just after the bottom line,
- and a "j" means use the "target" line, as specified by the \-j option.
- .IP "%B"
- Replaced by the size of the current input file.
- .IP "%c"
- Replaced by the column number of the text appearing in the first
- column of the screen.
- .IP "%d\fIX\fP"
- Replaced by the page number of a line in the input file.
- The line to be used is determined by the \fIX\fP, as with the %b option.
- .IP "%D"
- Replaced by the number of pages in the input file,
- or equivalently, the page number of the last line in the input file.
- .IP "%E"
- Replaced by the name of the editor (from the VISUAL environment variable,
- or the EDITOR environment variable if VISUAL is not defined).
- See the discussion of the LESSEDIT feature below.
- .IP "%f"
- Replaced by the name of the current input file.
- .IP "%F"
- Replaced by the last component of the name of the current input file.
- .IP "%g"
- Replaced by the shell-escaped name of the current input file.
- This is useful when the expanded string will be used in a shell command,
- such as in LESSEDIT.
- .IP "%i"
- Replaced by the index of the current file in the list of
- input files.
- .IP "%l\fIX\fP"
- Replaced by the line number of a line in the input file.
- The line to be used is determined by the \fIX\fP, as with the %b option.
- .IP "%L"
- Replaced by the line number of the last line in the input file.
- .IP "%m"
- Replaced by the total number of input files.
- .IP "%p\fIX\fP"
- Replaced by the percent into the current input file, based on byte offsets.
- The line used is determined by the \fIX\fP as with the %b option.
- .IP "%P\fIX\fP"
- Replaced by the percent into the current input file, based on line numbers.
- The line used is determined by the \fIX\fP as with the %b option.
- .IP "%s"
- Same as %B.
- .IP "%t"
- Causes any trailing spaces to be removed.
- Usually used at the end of the string, but may appear anywhere.
- .IP "%T"
- Normally expands to the word "file".
- However if viewing files via a tags list using the \-t option,
- it expands to the word "tag".
- .IP "%x"
- Replaced by the name of the next input file in the list.
- .PP
- If any item is unknown (for example, the file size if input
- is a pipe), a question mark is printed instead.
- .PP
- The format of the prompt string can be changed
- depending on certain conditions.
- A question mark followed by a single character acts like an "IF":
- depending on the following character, a condition is evaluated.
- If the condition is true, any characters following the question mark
- and condition character, up to a period, are included in the prompt.
- If the condition is false, such characters are not included.
- A colon appearing between the question mark and the
- period can be used to establish an "ELSE": any characters between
- the colon and the period are included in the string if and only if
- the IF condition is false.
- Condition characters (which follow a question mark) may be:
- .IP "?a"
- True if any characters have been included in the prompt so far.
- .IP "?b\fIX\fP"
- True if the byte offset of the specified line is known.
- .IP "?B"
- True if the size of current input file is known.
- .IP "?c"
- True if the text is horizontally shifted (%c is not zero).
- .IP "?d\fIX\fP"
- True if the page number of the specified line is known.
- .IP "?e"
- True if at end-of-file.
- .IP "?f"
- True if there is an input filename
- (that is, if input is not a pipe).
- .IP "?l\fIX\fP"
- True if the line number of the specified line is known.
- .IP "?L"
- True if the line number of the last line in the file is known.
- .IP "?m"
- True if there is more than one input file.
- .IP "?n"
- True if this is the first prompt in a new input file.
- .IP "?p\fIX\fP"
- True if the percent into the current input file, based on byte offsets,
- of the specified line is known.
- .IP "?P\fIX\fP"
- True if the percent into the current input file, based on line numbers,
- of the specified line is known.
- .IP "?s"
- Same as "?B".
- .IP "?x"
- True if there is a next input file
- (that is, if the current input file is not the last one).
- .PP
- Any characters other than the special ones
- (question mark, colon, period, percent, and backslash)
- become literally part of the prompt.
- Any of the special characters may be included in the prompt literally
- by preceding it with a backslash.
- .PP
- Some examples:
- .sp
- ?f%f:Standard input.
- .sp
- This prompt prints the filename, if known;
- otherwise the string "Standard input".
- .sp
- ?f%f \&.?ltLine %lt:?pt%pt\e%:?btByte %bt:-...
- .sp
- This prompt would print the filename, if known.
- The filename is followed by the line number, if known,
- otherwise the percent if known, otherwise the byte offset if known.
- Otherwise, a dash is printed.
- Notice how each question mark has a matching period,
- and how the % after the %pt
- is included literally by escaping it with a backslash.
- .sp
- ?n?f%f\ .?m(%T %i of %m)\ ..?e(END)\ ?x-\ Next\e:\ %x..%t";
- .sp
- This prints the filename if this is the first prompt in a file,
- followed by the "file N of N" message if there is more
- than one input file.
- Then, if we are at end-of-file, the string "(END)" is printed
- followed by the name of the next file, if there is one.
- Finally, any trailing spaces are truncated.
- This is the default prompt.
- For reference, here are the defaults for
- the other two prompts (\-m and \-M respectively).
- Each is broken into two lines here for readability only.
- .nf
- .sp
- ?n?f%f\ .?m(%T\ %i\ of\ %m)\ ..?e(END)\ ?x-\ Next\e:\ %x.:
- ?pB%pB\e%:byte\ %bB?s/%s...%t
- .sp
- ?f%f\ .?n?m(%T\ %i\ of\ %m)\ ..?ltlines\ %lt-%lb?L/%L.\ :
- byte\ %bB?s/%s.\ .?e(END)\ ?x-\ Next\e:\ %x.:?pB%pB\e%..%t
- .sp
- .fi
- And here is the default message produced by the = command:
- .nf
- .sp
- ?f%f\ .?m(%T\ %i\ of\ %m)\ .?ltlines\ %lt-%lb?L/%L.\ .
- byte\ %bB?s/%s.\ ?e(END)\ :?pB%pB\e%..%t
- .fi
- .PP
- The prompt expansion features are also used for another purpose:
- if an environment variable LESSEDIT is defined, it is used
- as the command to be executed when the v command is invoked.
- The LESSEDIT string is expanded in the same way as the prompt strings.
- The default value for LESSEDIT is:
- .nf
- .sp
- %E\ ?lm+%lm.\ %g
- .sp
- .fi
- Note that this expands to the editor name, followed by a + and the
- line number, followed by the shell-escaped file name.
- If your editor does not accept the "+linenumber" syntax, or has other
- differences in invocation syntax, the LESSEDIT variable can be
- changed to modify this default.
- .
- .SH SECURITY
- When the environment variable LESSSECURE is set to 1,
- .B less
- runs in a "secure" mode.
- This means these features are disabled:
- .RS
- .IP "!"
- the shell command
- .IP "#"
- the pshell command
- .IP "|"
- the pipe command
- .IP ":e"
- the examine command.
- .IP "v"
- the editing command
- .IP "s \-o"
- log files
- .IP "\-k"
- use of lesskey files
- .IP "\-t"
- use of tags files
- .IP
- metacharacters in filenames, such as *
- .IP
- filename completion (TAB, \(haL)
- .IP
- history file
- .RE
- .PP
- Less can also be compiled to be permanently in "secure" mode.
- .
- .SH "COMPATIBILITY WITH MORE"
- If the environment variable LESS_IS_MORE is set to 1,
- or if the program is invoked via a file link named "more",
- .B less
- behaves (mostly) in conformance with the POSIX
- .BR more (1)
- command specification.
- In this mode, less behaves differently in these ways:
- .PP
- The \-e option works differently.
- If the \-e option is not set,
- .B less
- behaves as if the \-e option were set.
- If the \-e option is set,
- .B less
- behaves as if the \-E option were set.
- .PP
- The \-m option works differently.
- If the \-m option is not set, the medium prompt is used,
- and it is prefixed with the string "\-\-More\-\-".
- If the \-m option is set, the short prompt is used.
- .PP
- The \-n option acts like the \-z option.
- The normal behavior of the \-n option is unavailable in this mode.
- .PP
- The parameter to the \-p option is taken to be a
- .B less
- command rather than a search pattern.
- .PP
- The LESS environment variable is ignored,
- and the MORE environment variable is used in its place.
- .
- .SH "ENVIRONMENT VARIABLES"
- Environment variables may be specified either in the system environment
- as usual, or in a
- .BR lesskey (1)
- file.
- If environment variables are defined in more than one place,
- variables defined in a local lesskey file take precedence over
- variables defined in the system environment, which take precedence
- over variables defined in the system-wide lesskey file.
- .IP COLUMNS
- Sets the number of columns on the screen.
- Takes precedence over the number of columns specified by the TERM variable.
- (But if you have a windowing system which supports TIOCGWINSZ or WIOCGETD,
- the window system's idea of the screen size takes precedence over the
- LINES and COLUMNS environment variables.)
- .IP EDITOR
- The name of the editor (used for the v command).
- .IP HOME
- Name of the user's home directory
- (used to find a lesskey file on Unix and OS/2 systems).
- .IP "HOMEDRIVE, HOMEPATH"
- Concatenation of the HOMEDRIVE and HOMEPATH environment variables is
- the name of the user's home directory if the HOME variable is not set
- (only in the Windows version).
- .IP INIT
- Name of the user's init directory (used to find a lesskey file on OS/2 systems).
- .IP LANG
- Language for determining the character set.
- .IP LC_CTYPE
- Language for determining the character set.
- .IP LESS
- Options which are passed to
- .B less
- automatically.
- .IP LESSANSIENDCHARS
- Characters which may end an ANSI color escape sequence
- (default "m").
- .IP LESSANSIMIDCHARS
- Characters which may appear between the ESC character and the
- end character in an ANSI color escape sequence
- (default "0123456789:;[?!"\(aq#%()*+\ ".
- .IP LESSBINFMT
- Format for displaying non-printable, non-control characters.
- .IP LESSCHARDEF
- Defines a character set.
- .IP LESSCHARSET
- Selects a predefined character set.
- .IP LESSCLOSE
- Command line to invoke the (optional) input-postprocessor.
- .IP LESSECHO
- Name of the lessecho program (default "lessecho").
- The lessecho program is needed to expand metacharacters, such as * and ?,
- in filenames on Unix systems.
- .IP LESSEDIT
- Editor prototype string (used for the v command).
- See discussion under PROMPTS.
- .IP LESSGLOBALTAGS
- Name of the command used by the \-t option to find global tags.
- Normally should be set to "global" if your system has the
- .BR global (1)
- command. If not set, global tags are not used.
- .IP LESSHISTFILE
- Name of the history file used to remember search commands and
- shell commands between invocations of
- .BR less .
- If set to "\-" or "/dev/null", a history file is not used.
- The default depends on the operating system, but is usually:
- .RS
- .IP "Linux and Unix"
- "$XDG_STATE_HOME/lesshst" or "$HOME/.local/state/lesshst" or
- "$XDG_DATA_HOME/lesshst" or "$HOME/.lesshst".
- .IP "Windows and MS-DOS"
- "$HOME/_lesshst".
- .IP "OS/2"
- "$HOME/lesshst.ini" or "$INIT/lesshst.ini".
- .RE
- .IP LESSHISTSIZE
- The maximum number of commands to save in the history file.
- The default is 100.
- .IP LESSKEYIN
- Name of the default
- .I "lesskey source"
- file.
- .IP LESSKEY
- Name of the default
- .I "lesskey binary"
- file. (Not used if "$LESSKEYIN" exists.)
- .IP LESSKEYIN_SYSTEM
- Name of the default system-wide
- .I "lesskey source"
- file.
- .IP LESSKEY_SYSTEM
- Name of the default system-wide
- .I "lesskey binary"
- file. (Not used if "$LESSKEYIN_SYSTEM" exists.)
- .IP LESSMETACHARS
- List of characters which are considered "metacharacters" by the shell.
- .IP LESSMETAESCAPE
- Prefix which less will add before each metacharacter in a
- command sent to the shell.
- If LESSMETAESCAPE is an empty string, commands containing
- metacharacters will not be passed to the shell.
- .IP LESSOPEN
- Command line to invoke the (optional) input-preprocessor.
- .IP LESSSECURE
- Runs less in "secure" mode.
- See discussion under SECURITY.
- .IP LESSSEPARATOR
- String to be appended to a directory name in filename completion.
- .IP LESSUTFBINFMT
- Format for displaying non-printable Unicode code points.
- .IP LESSUTFCHARDEF
- Overrides the type of specified Unicode characters.
- .IP LESS_COLUMNS
- Sets the number of columns on the screen.
- Unlike COLUMNS, takes precedence over the system's idea of the screen size,
- so it can be used to make
- .B less
- use less than the full screen width.
- If set to a negative number, sets the number of columns used to
- this much less than the actual screen width.
- .IP LESS_LINES
- Sets the number of lines on the screen.
- Unlike LINES, takes precedence over the system's idea of the screen size,
- so it can be used to make
- .B less
- use less than the full screen height.
- If set to a negative number, sets the number of lines used to
- this much less than the actual screen height.
- When set,
- .B less
- repaints the entire screen on every movement command,
- so scrolling may be slower.
- .IP LESS_DATA_DELAY
- Duration (in milliseconds) after starting to read data from the input,
- after which the "Waiting for data" message will be displayed.
- The default is 4000 (4 seconds).
- .IP LESS_IS_MORE
- Emulate the
- .BR more (1)
- command.
- .IP LESS_TERMCAP_xx
- Where "xx" is any two characters, overrides the definition
- of the termcap "xx" capability for the terminal.
- .IP LINES
- Sets the number of lines on the screen.
- Takes precedence over the number of lines specified by the TERM variable.
- (But if you have a windowing system which supports TIOCGWINSZ or WIOCGETD,
- the window system's idea of the screen size takes precedence over the
- LINES and COLUMNS environment variables.)
- .IP MORE
- Options which are passed to
- .B less
- automatically when running in
- .BR more "-compatible mode."
- .IP PATH
- User's search path (used to find a lesskey file
- on MS-DOS and OS/2 systems).
- .IP SHELL
- The shell used to execute the !\& command, as well as to expand filenames.
- .IP TERM
- The type of terminal on which
- .B less
- is being run.
- .IP VISUAL
- The name of the editor (used for the v command).
- .IP XDG_CONFIG_HOME
- Possible location of the
- .B lesskey
- file; see the KEY BINDINGS section.
- .IP XDG_DATA_HOME
- Possible location of the history file; see the description of the LESSHISTFILE environment variable.
- .IP XDG_STATE_HOME
- Possible location of the history file; see the description of the LESSHISTFILE environment variable.
- .
- .SH "SEE ALSO"
- .BR lesskey (1),
- .BR lessecho (1)
- .
- .SH COPYRIGHT
- Copyright (C) 1984-2023 Mark Nudelman
- .PP
- less is part of the GNU project and is free software.
- You can redistribute it and/or modify it
- under the terms of either
- (1) the GNU General Public License as published by
- the Free Software Foundation; or (2) the Less License.
- See the file README in the less distribution for more details
- regarding redistribution.
- You should have received a copy of the GNU General Public License
- along with the source for less; see the file COPYING.
- If not, write to the Free Software Foundation, 59 Temple Place,
- Suite 330, Boston, MA 02111-1307, USA.
- You should also have received a copy of the Less License;
- see the file LICENSE.
- .PP
- less is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU General Public License for more details.
- .
- .SH AUTHOR
- .
- Mark Nudelman
- .br
- Report bugs at https://github.com/gwsw/less/issues.
- .br
- For more information, see the less homepage at
- .br
- https://greenwoodsoftware.com/less