.\" 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.
.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 ftp://\:ftp.kernel.org\:/pub\:/linux\:/utils\:/util-linux/
Linux Kernel Archive
.UE .
