.\" Copyright (c) 1988, 1990 The Regents of the University of California.
.\" Copyright (c) 1988 Mark Nudleman
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\"    must display the following acknowledgement:
.\"	This product includes software developed by the University of
.\"	California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\"    may be used to endorse or promote products derived from this software
.\"    without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"	@(#)more.1	5.15 (Berkeley) 7/29/91
.\"
.\" Copyright (c) 1992 Rik Faith (faith@cs.unc.edu)
.\"
.TH MORE "1" "February 2014" "util-linux" "User Commands"
.SH NAME
more \- file perusal filter for crt viewing
.SH SYNOPSIS
.B more
[options]
.IR file ...
.SH DESCRIPTION
.B more
is a filter for paging through text one screenful at a time.  This version is
especially primitive.  Users should realize that
.BR less (1)
provides
.BR more (1)
emulation plus extensive enhancements.
.SH OPTIONS
Options are also taken from the environment variable
.B MORE
(make sure to precede them with a dash
.RB ( \- ))
but command-line options will override those.
.TP
.B \-d
Prompt with "[Press space to continue, 'q' to quit.]",
and display "[Press 'h' for instructions.]" instead of ringing
the bell when an illegal key is pressed.
.TP
.B \-l
Do not pause after any line containing a
.B \&^L
(form feed).
.TP
.B \-f
Count logical lines, rather than screen lines (i.e., long lines are not folded).
.TP
.B \-p
Do not scroll.  Instead, clear the whole screen and then display the text.
Notice that this option is switched on automatically if the executable is
named
.BR page .
.TP
.B \-c
Do not scroll.  Instead, paint each screen from the top, clearing the
remainder of each line as it is displayed.
.TP
.B \-s
Squeeze multiple blank lines into one.
.TP
.B \-u
Suppress underlining.
.TP
.BI \- number
The screen size to use, in
.I number
of lines.
.TP
.BI + number
Start displaying each file at line
.IR number .
.TP
.BI +/ string
The
.I string
to be searched in each file before starting to display it.
.TP
\fB\-\-help\fR
Display help text and exit.
.TP
\fB\-V\fR, \fB\-\-version\fR
Display version information and exit.
.SH COMMANDS
Interactive commands for
.B more
are based on
.BR vi (1).
Some commands may be preceded by a decimal number, called k in the
descriptions below.  In the following descriptions,
.B ^X
means
.BR control-X .
.PP
.RS
.PD 1
.TP 10
.BR h \ or \ ?
Help; display a summary of these commands.  If you forget all other
commands, remember this one.
.TP
.B SPACE
Display next k lines of text.  Defaults to current screen size.
.TP
.B z
Display next k lines of text.  Defaults to current screen size.  Argument
becomes new default.
.TP
.B RETURN
Display next k lines of text.  Defaults to 1.  Argument becomes new default.
.TP
.BR d \ or \ \&^D
Scroll k lines.  Default is current scroll size, initially 11.  Argument
becomes new default.
.TP
.BR q \ or \ Q \ or \ INTERRUPT
Exit.
.TP
.B s
Skip forward k lines of text.  Defaults to 1.
.TP
.B f
Skip forward k screenfuls of text.  Defaults to 1.
.TP
.BR b \ or \ \&^B
Skip backwards k screenfuls of text.  Defaults to 1.  Only works with files,
not pipes.
.TP
.B '
Go to the place where the last search started.
.TP
.B =
Display current line number.
.TP
.B \&/pattern
Search for kth occurrence of regular expression.  Defaults to 1.
.TP
.B n
Search for kth occurrence of last regular expression.  Defaults to 1.
.TP
.BR !command \ or \ :!command
Execute
.I command
in a subshell.
.TP
.B v
Start up an editor at current line.  The editor is taken from the environment
variable
.B VISUAL
if defined, or
.B EDITOR
if
.B VISUAL
is not defined, or defaults
to
.B vi
if neither
.B VISUAL
nor
.B EDITOR
is defined.
.TP
.B \&^L
Redraw screen.
.TP
.B :n
Go to kth next file.  Defaults to 1.
.TP
.B :p
Go to kth previous file.  Defaults to 1.
.TP
.B :f
Display current file name and line number.
.TP
.B \&.
Repeat previous command.
.SH ENVIRONMENT
The
.B more
command respects the following environment variables, if they exist:
.TP
.B MORE
This variable may be set with favored options to
.BR more .
.TP
.B SHELL
Current shell in use (normally set by the shell at login time).
.TP
.B TERM
The terminal type used by \fBmore\fR to get the terminal
characteristics necessary to manipulate the screen.
.TP
.B VISUAL
The editor the user prefers.  Invoked when command key
.I v
is pressed.
.TP
.B EDITOR
The editor of choice when
.B VISUAL
is not specified.
.SH SEE ALSO
.BR less (1),
.BR vi (1)
.SH AUTHORS
Eric Shienbrood, UC Berkeley
.br
Modified by Geoff Peck, UCB to add underlining, single spacing
.br
Modified by John Foderaro, UCB to add -c and MORE environment variable
.SH HISTORY
The
.B more
command appeared in 3.0BSD.  This man page documents
.B more
version 5.19 (Berkeley 6/29/88), which is currently in use in the Linux
community.  Documentation was produced using several other versions of the
man page, and extensive inspection of the source code.
.SH AVAILABILITY
The more command is part of the util-linux package and is available from
.UR https://\:www.kernel.org\:/pub\:/linux\:/utils\:/util-linux/
Linux Kernel Archive
.UE .
