| LESS(1) | General Commands Manual | LESS(1) |
less — view
files
less |
[-?~AaBCcdEeFfGgIiJKLMmNnQqRrSsUuVWwX]
[-b n]
[-h n]
[-j n]
[-k keyfile]
[-O | -o
logfile] [-P
prompt] [-p
pattern] [-T
tagsfile] [-t
tag] [-x
n,...]
[-y n]
[-z n]
[-# n] [file
...] |
less displays text one screenful at a
time. After showing each screenful, it prompts the user for a command, as
described in COMMANDS. When showing the
last line of a file, less displays a prompt
indicating end of file and the name of the next file to examine, if any. It
then waits for input from the user.
less is similar to the traditional
more(1), but with many more
features. less will behave like
more(1) if it is called as
more, or if the LESS_IS_MORE
environment variable is set. The main differences between the two are
summarized in the
COMPATIBILITY WITH MORE
section, below.
A long option name may be abbreviated as long as the abbreviation
is unambiguous. 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.
The options are as follows:
-? |
--helpless (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:
‘-\?’.)-A |
--SEARCH-SKIP-SCREENless versions prior to 441.-a |
--search-skip-screenn 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.-B |
--auto-buffers-B option disables this automatic allocation of
buffers for pipes, so that only 64K (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.-b
n |
--buffers=nless will use
for each file, in units of kilobytes (1024 bytes). By default 64K of
buffer space is used for each file (unless the file is a pipe; see the
-B option). The -b option
specifies instead that n kilobytes of buffer space
should be used for each file. If n is -1, buffer
space is unlimited; that is, the entire file can be read into memory.-C |
--CLEAR-SCREEN-c, for compatibility with older versions
of less.-c |
--clear-screen-d |
--dumb-d option suppresses the error message
normally displayed if the terminal is dumb; that is, if the terminal 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 less on a dumb
terminal.-E |
--QUIT-AT-EOFless to automatically exit the first time
it reaches end-of-file.-e |
--quit-at-eofless to automatically exit the second time
it reaches end-of-file. By default, the only way to exit
less is via the q
command.-F |
--quit-if-one-screenless to automatically exit if the entire
file can be displayed on the first screen.-f |
--forceless will
refuse to open non-regular files.-G |
--HILITE-SEARCH-G option suppresses all highlighting of
strings found by search commands.-g |
--hilite-searchless 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
less to run somewhat faster than the default.-h
n |
--max-back-scroll=n-h0’ is implied.)-I |
--IGNORE-CASE-i, but searches ignore case even if the
pattern contains uppercase letters.-i |
--ignore-case-J |
--status-column-w or -W
option is in effect.-j
n |
--jump-target=n-j option is used, forward searches begin at the
line immediately after the target line, and 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.-K |
--quit-on-intrless to exit immediately (with status 2)
when an interrupt character (usually ^C) is typed.
Normally, an interrupt character causes 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.-k
keyfile |
--lesskey-file=keyfileless to open and interpret the named file
as a lesskey(1) 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 lesskey file.-M |
--LONG-PROMPTless to prompt even more verbosely than
more(1).-m |
--long-promptless to prompt verbosely, like
more(1), with the percent into
the file. By default, less prompts with a
colon.-N |
--LINE-NUMBERS-n |
--line-numbersless 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).-O
logfile |
--LOG-FILE=logfile-O option is like -o,
but it will overwrite an existing file without asking for confirmation.
If no log file has been specified, the
-o and -O options can be
used from within 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 less.
-o
logfile |
--log-file=logfileless 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, less
will ask for confirmation before overwriting it.-P
prompt |
--prompt=promptLESS
environment variable, rather than being typed in with each
less command. Such an option must either be the
last option in the LESS variable, or be terminated
by a dollar sign.
-Ps
string changes the default (short) prompt to
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).-p
pattern |
--pattern=pattern-p option on the command line is equivalent to
specifying +/pattern; that
is, it tells less to start at the first occurrence
of pattern in the file.-Q |
--QUIET
|
--SILENT-q |
--quiet
|
--silent-R |
--RAW-CONTROL-CHARS-r, but only ANSI color escape sequences are
output in raw form. Unlike -r, the screen
appearance is maintained correctly in most cases. ANSI color escape
sequences are sequences of the form:
ESC [ ... mwhere the “...” is zero or more color
specification characters. For the purpose of keeping track of screen
appearance, ANSI color escape sequences are assumed to not move the
cursor. You can make 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
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.
-r |
--raw-control-chars-r option is used,
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.-S |
--chop-long-lines-s |
--squeeze-blank-lines-T
tagsfile |
--tag-file=tagsfile-t
tag |
--tag=tag-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 ctags(1)
or an equivalent command. The -t option may also
be specified from within less (using the
- command) as a way of examining a new file. The
command :t is equivalent to specifying
-t from within less.-U |
--UNDERLINE-SPECIAL-r option.
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. Text which is overstruck or
underlined can be searched for if neither -u nor
-U is in effect.
-u |
--underline-special-V |
--versionless.-W |
--HILITE-UNREAD-w, but temporarily highlights the first new
line after any forward movement command larger than one line.-w |
--hilite-unreadg or p command.
The highlight is removed at the next command which causes movement. The
entire line is highlighted, unless the -J option
is in effect, in which case only the status column is highlighted.-X |
--no-init-x
n,... |
--tabs=n,...-x9,17’ will set tabs at positions
9, 17, 25, 33, etc. The default for n is 8.-y
n |
--max-forw-scroll=n-c or -C option may be
used to repaint from the top of the screen if desired. By default, any
forward movement causes scrolling.-z
n |
--window=nz and
w commands can also be used to change the window
size. The z may be omitted for compatibility with
some versions of more(1). If the
number n is negative, it indicates
n lines less than the current screen size. For
example, if the screen is 24 lines, -z-4 sets the
scrolling window to 20 lines. If the screen is resized to 40 lines, the
scrolling window automatically changes to 36 lines.--follow-nameF
command is executing, less will continue to
display the contents of the original file despite its name change. If
--follow-name is specified, during an
F command 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), less will display the contents of that new
file.--no-keypad--use-backslash--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.-"
cc |
--quotes=cc-" (a dash followed by a double quote).-~ |
--tilde-#
n |
--shift=n---- 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 ‘+’.+less. For
example, +G tells 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
+numberg; that is, it starts
the display at the specified line number (however, see the caveat under
the g command below). 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.Commands are based on both traditional more(1) and vi(1). Commands may be preceded by a decimal number, called N in the descriptions below. In the following descriptions, ^X means control-X. ESC stands for the ESCAPE key; for example ESC-v means the two character sequence "ESCAPE", then "v".
h |
HSPACE
| ^V |
f |
^F-z above). If N is more than the screen size, only
the final screenful is displayed. Warning: some systems use ^V as a
special literalization character.zESC-SPACEENTER
|
RETURN
| ^N |
e |
^E |
j |
^Jd |
^Db |
^B |
ESC-v-z above). If N is more than the screen size, only
the final screenful is displayed.wy |
^Y |
^P |
k |
^Ku |
^UESC-)
|
RIGHTARROW-# 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.ESC-(
|
LEFTARROW-# option). If a number N is specified, it
becomes the default for future RIGHTARROW and LEFTARROW commands.r |
^R |
^LRFESC-Fg |
< |
ESC-<G |
> |
ESC->p |
%P{}()[]ESC-^FESC-^Bm'^X^X/pattern-a and
-j options, which change this).
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:
^N
|
!^E
|
*^F
|
@-a or
-j options.^K^R?patternCertain characters are special, as in the / command:
^N
|
!^E
|
*^F
|
@-a or
-j options.^K^RESC-/patternESC-?patternnNESC-nESC-NESC-u-G option; in that case search
commands do not turn highlighting back on.)&patternCertain characters are special as in the / command:
:e
[filename]-" option).^X^V
|
E:n:p:t:x:dt-t option for more details about
tags.T= |
^G |
:f--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.---+-+X’ on the command line.) This
does not work for string-valued options.--+-!--!___+cmdless to initially display
each file starting at the end rather than the beginning.Vless being run.q |
Q |
:q |
:Q |
ZZless.The following four commands may or may not be valid, depending on your particular installation.
vVISUAL, 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.<m>
shell-commands
filenameWhen entering 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. Any of these special keys may be entered literally by preceding it with the "literal" character, either ^V or ^A. A backslash itself may also be entered literally by entering two backslashes.
LESSSEPARATOR
can be used to specify a different character to append to a directory
name.You may define your own less commands by
using the program lesskey(1) to
create a lesskey file. This file specifies a set of command keys and an
action associated with each key. You may also use lesskey to change the
line-editing keys (see LINE EDITING),
and to set environment variables. If the environment variable
LESSKEY is set, less uses
that as the name of the lesskey file. Otherwise,
less looks for a lesskey file called
"$HOME/.less". See the
lesskey(1) manual page for more
details.
A system-wide lesskey 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
LESSKEY_SYSTEM is set, less
uses that as the name of the system-wide lesskey file. Otherwise,
less looks in a standard place for the system-wide
lesskey file: On OpenBSD, the system-wide lesskey
file is /etc/sysless.
There are three types of characters in the input file:
A "character set" is simply a description of which
characters are to be considered normal, control, and binary.
less will determine the character set to use from
the environment (see
locale(1)).
Control and binary characters are displayed in standout (reverse
video). Each such character is displayed in caret notation if possible (e.g.
^A 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.
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, illegal octets, and stray trailing octets) are displayed
individually using LESSBINFMT so as to facilitate diagnostic of how the
UTF-8 file is ill-formed.
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.
A percent sign followed by a single character is expanded according to what the following character is:
-j option.VISUAL environment variable, or the
EDITOR environment variable if
VISUAL is not defined). See the discussion of the
LESSEDIT feature below.If any item is unknown (for example, the file size if input is a pipe), a question mark is printed instead.
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:
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.
Some examples:
?f%f:Standard input.This prompt prints the filename, if known; otherwise the string "Standard input".
?f%f .?ltLine %lt:?pt%pt\%:?btByte
%bt:-...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.
?n?f%f .?m(file %i of %m) ..?e(END) ?x- Next\: %x..%tThis 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.
?f%f .?m(file %i of %m) .?e(END) ?x- Next\: %x.: ?pB%pB\%:byte %bB?s/%s...%t ?f%f .?n?m(file %i of %m) ..?ltlines %lt-%lb?L/%L. : byte %bB?s/%s. .?e(END) ?x- Next\: %x.:?pB%pB\%..%t
And here is the default message produced by the = command:
?f%f .?m(file %i of %m) .?ltlines %lt-%lb?L/%L. . byte %bB?s/%s. ?e(END) :?pB%pB\%..%t
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:
%E ?lm+%lm. %fNote that this expands to the editor name, followed by a + and the
line number, followed by the 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.
When the environment variable LESSSECURE
is set to 1, less runs in a "secure" mode.
This means these features are disabled:
If the environment variable LESS_IS_MORE
is set to 1, or if the program is invoked via a file link named
"more", less behaves (mostly) in
conformance with the POSIX "more" command specification. In this
mode, less behaves differently in these ways:
The sense of the -c option is inverted:
when more(1) changes the display,
the default is to scroll from the bottom of the screen, and the
-c option causes it to paint from the top line
down.
The -e option works differently: it causes
more(1) to exit the first time it
reaches EOF, not the second.
The -i option acts like the
-I option. The normal behavior of the
-i option is unavailable in this mode.
The -m option works differently: if it is
not specified, the medium prompt is used; if it is specified, the short
prompt is used.
The -n option acts like the
-z option. The normal behavior of the
-n option is unavailable in this mode.
The parameter to the -p option is taken to
be a command rather than a search pattern.
Options to suppress error messages when the terminal is dumb
(-d), suppress highlighting of strings in search
results (-G), and disable termcap initialization
(-X) are on by default.
The LESS environment variables are
ignored, and the MORE environment variable is used
in its place.
Environment variables may be specified either in the system environment as usual, or in a 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.
COLUMNSTERM variable, but may
be overridden by window systems which support
TIOCGWINSZ.EDITORVISUAL is not set.
If neither are set, vi(1) is
used.HOMELANGLC_CTYPELESSless automatically.
Command line options override the LESS environment
variable.
Some options like -k 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, to separate a prompt
value from any other options with dollar sign between them:
LESS="-Ps--More--$-C
-e"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.
LESSANSIENDCHARSLESSANSIMIDCHARSLESSBINFMTLESSEDITLESSHISTFILEless. If set to
"-" or "/dev/null", a history file is not used. The
default is "-".LESSHISTSIZELESSKEYLESSKEY_SYSTEMLESSMETACHARSLESSMETAESCAPEless 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.LESSSECURELESSSEPARATORLESSUTFBINFMTLESS_IS_MORELINESTIOCGWINSZ.MOREless automatically
when running in more(1)
compatible mode.SHELLTERMless to get
the terminal characteristics necessary to manipulate the screen.VISUALEDITOR
is used; if that is not set, vi(1)
is used.less was first published in 1985 and has
been available since OpenBSD 2.0.
Mark Nudelman
| April 14, 2024 | openbsd |