mirror of https://github.com/tildeclub/ex-vi.git
1026 lines
33 KiB
Groff
1026 lines
33 KiB
Groff
.\"
|
||
.\" This code contains changes by
|
||
.\" Gunnar Ritter, Freiburg i. Br., Germany, 2002. All rights reserved.
|
||
.\"
|
||
.\" Conditions 1, 2, and 4 and the no-warranty notice below apply
|
||
.\" to these changes.
|
||
.\"
|
||
.\"
|
||
.\" Copyright (c) 1980, 1993
|
||
.\" The Regents of the University of California. 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.
|
||
.\"
|
||
.\"
|
||
.\" Copyright(C) Caldera International Inc. 2001-2002. All rights reserved.
|
||
.\"
|
||
.\" Redistribution and use in source and binary forms, with or without
|
||
.\" modification, are permitted provided that the following conditions
|
||
.\" are met:
|
||
.\" Redistributions of source code and documentation must retain the
|
||
.\" above copyright notice, this list of conditions and the following
|
||
.\" disclaimer.
|
||
.\" 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.
|
||
.\" All advertising materials mentioning features or use of this software
|
||
.\" must display the following acknowledgement:
|
||
.\" This product includes software developed or owned by Caldera
|
||
.\" International, Inc.
|
||
.\" Neither the name of Caldera International, Inc. nor the names of
|
||
.\" other contributors may be used to endorse or promote products
|
||
.\" derived from this software without specific prior written permission.
|
||
.\"
|
||
.\" USE OF THE SOFTWARE PROVIDED FOR UNDER THIS LICENSE BY CALDERA
|
||
.\" INTERNATIONAL, INC. 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 CALDERA INTERNATIONAL, INC. 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.
|
||
.\"
|
||
.\" from vi.1 6.1 (Berkeley) 4/29/85
|
||
.\"
|
||
.\" Sccsid @(#)vi.1 1.26 (gritter) 3/12/03
|
||
.\"
|
||
.ie \n(.g==1 \{\
|
||
.ds lq \(lq
|
||
.ds rq \(rq
|
||
.\}
|
||
.el \{\
|
||
.ds lq ``
|
||
.ds rq ''
|
||
.\}
|
||
.TH VI 1 "3/12/03" "Ancient Unix Ports" "User Commands"
|
||
.SH NAME
|
||
vi, view, vedit \- screen oriented (visual) display editor based on ex
|
||
.SH SYNOPSIS
|
||
.HP
|
||
.ad l
|
||
\fBvi\fR [\fB\-c\fI\ command\fR|\fB+\fIcommand\fR]
|
||
[\fB\-r\fR\ [\fIfilename\fR]] [\fB\-s\fR|\fB\-\fR]
|
||
[\fB\-t\fI\ tagstring\fR] [\fB\-w\fI\ size\fR]
|
||
[\fB\-lLRV\fR] [\fIfile\fR ...]
|
||
.HP
|
||
.ad l
|
||
\fBview\fR [\fB\-c\fI\ command\fR|\fB+\fIcommand\fR]
|
||
[\fB\-r\fR\ [\fIfilename\fR]] [\fB\-s\fR|\fB\-\fR]
|
||
[\fB\-t\fI\ tagstring\fR] [\fB\-w\fI\ size\fR]
|
||
[\fB\-lLRV\fR] [\fIfile\fR ...]
|
||
.HP
|
||
.ad l
|
||
\fBvedit\fR [\fB\-c\fI\ command\fR|\fB+\fIcommand\fR]
|
||
[\fB\-r\fR\ [\fIfilename\fR]] [\fB\-s\fR|\fB\-\fR]
|
||
[\fB\-t\fI\ tagstring\fR] [\fB\-w\fI\ size\fR]
|
||
[\fB\-lLRV\fR] [\fIfile\fR ...]
|
||
.br
|
||
.ad b
|
||
.SH DESCRIPTION
|
||
.I Vi
|
||
(visual) is a display oriented text editor based on
|
||
.IR ex (1).
|
||
.I Ex
|
||
and
|
||
.I vi
|
||
run the same code; it is possible to get to
|
||
the command mode of
|
||
.I ex
|
||
from within
|
||
.I vi
|
||
and vice-versa.
|
||
.PP
|
||
The
|
||
.I view
|
||
command is identical to
|
||
.I vi
|
||
except that files are opened read-only.
|
||
The
|
||
.I vedit
|
||
command is also identical,
|
||
but sets some options to values more useful for novices.
|
||
.PP
|
||
The following options are accepted:
|
||
.TP
|
||
\fB\-c\fP\fI\ command\fP or \fB+\fP\fIcommand\fP
|
||
Execute
|
||
.I command
|
||
when editing begins.
|
||
.TP
|
||
.B \-l
|
||
Start in a special mode useful for the
|
||
.I Lisp
|
||
programming language.
|
||
.TP
|
||
\fB\-r\fI\ [filename]\fR or \fB\-L\fR
|
||
When no argument is supplied with this option,
|
||
all files to be recovered are listed
|
||
and the editor exits immediately.
|
||
If a
|
||
.I filename
|
||
is specified,
|
||
the corresponding temporary file is opened in recovery mode.
|
||
.TP
|
||
.B \-R
|
||
Files are opened read-only when this option is given.
|
||
.TP
|
||
.BR \-s \ or\ \-
|
||
Script mode;
|
||
all feedback for interactive editing is disabled.
|
||
.SM EXINIT
|
||
and
|
||
.I .exrc
|
||
files are not processed.
|
||
.TP
|
||
.BI \-t \ tagstring
|
||
Read the
|
||
.I tags
|
||
file,
|
||
then choose the file and position specified by
|
||
.I tagstring
|
||
for editing.
|
||
.TP
|
||
.B \-V
|
||
Echo command input to standard error,
|
||
unless it originates from a terminal.
|
||
.TP
|
||
.BI \-w \ size
|
||
Specify the size of the editing window for visual mode.
|
||
.PP
|
||
The
|
||
.I "Introduction to Display Editing with Vi"
|
||
provides full details on using
|
||
.I vi.
|
||
.PP
|
||
Most of the
|
||
.I ex
|
||
commands are available in
|
||
.I visual
|
||
mode when prefixed by a
|
||
.B :
|
||
character. See
|
||
.BR ex (1)
|
||
for a description of them.
|
||
.\" from vi.chars 8.1 (Berkeley) 6/8/93
|
||
.PP
|
||
The following gives the uses the editor makes of each character. The
|
||
characters are presented in their order in the \s-1ASCII\s0 character
|
||
set: Control characters come first, then most special characters, then
|
||
the digits, upper and then lower case characters.
|
||
.PP
|
||
For each character we tell a meaning it has as a command and any meaning it
|
||
has during an insert.
|
||
If it has only meaning as a command, then only this is discussed.
|
||
Section numbers in parentheses indicate where the character is discussed
|
||
in \*(lqAn Introduction to Display Editing with Vi\*(rq;
|
||
a `f' after the section number means that the character is mentioned
|
||
in a footnote.
|
||
.TP
|
||
\fB^@\fR
|
||
Not a command character.
|
||
If typed as the first character of an insertion it is replaced with the
|
||
last text inserted, and the insert terminates. Only 128 characters are
|
||
saved from the last insert; if more characters were inserted the mechanism
|
||
is not available.
|
||
A \fB^@\fR cannot be part of the file due to the editor implementation
|
||
(7.5f).
|
||
.TP
|
||
\fB^A\fR
|
||
Unused.
|
||
.TP
|
||
\fB^B\fR
|
||
Backward window.
|
||
A count specifies repetition.
|
||
Two lines of continuity are kept if possible (2.1, 6.1, 7.2).
|
||
.TP
|
||
\fB^C\fR
|
||
Unused.
|
||
.TP
|
||
\fB^D\fR
|
||
As a command, scrolls down a half-window of text.
|
||
A count gives the number of (logical) lines to scroll, and is remembered
|
||
for future \fB^D\fR and \fB^U\fR commands (2.1, 7.2).
|
||
During an insert, backtabs over \fIautoindent\fR white space at the beginning
|
||
of a line (6.6, 7.5); this white space cannot be backspaced over.
|
||
.TP
|
||
\fB^E\fR
|
||
Exposes one more line below the current screen in the file, leaving
|
||
the cursor where it is if possible.
|
||
.TP
|
||
\fB^F\fR
|
||
Forward window. A count specifies repetition.
|
||
Two lines of continuity are kept if possible (2.1, 6.1, 7.2).
|
||
.TP
|
||
\fB^G\fR
|
||
Equivalent to \fB:f\fR\s-1CR\s0, printing the current file, whether
|
||
it has been modified, the current line number and the number of lines
|
||
in the file, and the percentage of the way through the file.
|
||
.TP
|
||
\fB^H (\fR\s-1BS\s0\fB)\fR
|
||
Same as
|
||
.BR "left arrow" .
|
||
(See
|
||
.BR h ).
|
||
During an insert, eliminates the last input character, backing over it
|
||
but not erasing it; it remains so the user can see what he typed if he
|
||
wishes to type something only slightly different (3.1, 7.5).
|
||
.TP
|
||
\fB^I\ (\fR\s-1TAB\s0\fB)\fR
|
||
Not a command character.
|
||
When inserted it prints as some
|
||
number of spaces.
|
||
When the cursor is at a tab character it rests at the last of the spaces
|
||
which represent the tab.
|
||
The spacing of tabstops is controlled by the \fItabstop\fR option (4.1, 6.6).
|
||
.TP
|
||
\fB^J\ (\fR\s-1LF\s0\fB)\fR
|
||
Same as
|
||
.B "down arrow"
|
||
(see
|
||
.BR j ).
|
||
.TP
|
||
\fB^K\fR
|
||
Unused.
|
||
.TP
|
||
\fB^L\fR
|
||
The \s-1ASCII\s0 formfeed character, this causes the screen to be cleared
|
||
and redrawn. This is useful after a transmission error, if characters
|
||
typed by a program other than the editor scramble the screen,
|
||
or after output is stopped by an interrupt (5.4, 7.2f).
|
||
.TP
|
||
\fB^M\ (\fR\s-1CR\s0\fB)\fR
|
||
A carriage return advances to the next line, at the first non-white position
|
||
in the line. Given a count, it advances that many lines (2.3).
|
||
During an insert, a \s-1CR\s0 causes the insert to continue onto
|
||
another line (3.1).
|
||
.TP
|
||
\fB^N\fR
|
||
Same as
|
||
.B "down arrow"
|
||
(see
|
||
.BR j ).
|
||
.TP
|
||
\fB^O\fR
|
||
Unused.
|
||
.TP
|
||
\fB^P\fR
|
||
Same as
|
||
.B "up arrow"
|
||
(see
|
||
.BR k ).
|
||
.TP
|
||
\fB^Q\fR
|
||
Not a command character.
|
||
In input mode,
|
||
.B ^Q
|
||
quotes the next character, the same as
|
||
.B ^V ,
|
||
except that some teletype drivers will eat the
|
||
.B ^Q
|
||
so that the editor never sees it.
|
||
.TP
|
||
\fB^R\fR
|
||
Redraws the current screen, eliminating logical lines not corresponding
|
||
to physical lines (lines with only a single @ character on them).
|
||
On hardcopy terminals in \fIopen\fR mode, retypes the current line
|
||
(5.4, 7.2, 7.8).
|
||
.TP
|
||
\fB^S\fR
|
||
Unused. Some teletype drivers use
|
||
.B ^S
|
||
to suspend output until
|
||
.B ^Q is pressed.
|
||
.TP
|
||
\fB^T\fR
|
||
Not a command character.
|
||
During an insert, with \fIautoindent\fR set and at the beginning of the
|
||
line, inserts \fIshiftwidth\fR white space.
|
||
.TP
|
||
\fB^U\fR
|
||
Scrolls the screen up, inverting \fB^D\fR which scrolls down. Counts work as
|
||
they do for \fB^D\fR, and the previous scroll amount is common to both.
|
||
On a dumb terminal, \fB^U\fR will often necessitate clearing and redrawing
|
||
the screen further back in the file (2.1, 7.2).
|
||
.TP
|
||
\fB^V\fR
|
||
Not a command character.
|
||
In input mode, quotes the next character so that it is possible
|
||
to insert non-printing and special characters into the file (4.2, 7.5).
|
||
.TP
|
||
\fB^W\fR
|
||
Not a command character.
|
||
During an insert, backs up as \fBb\fR would in command mode; the deleted
|
||
characters remain on the display (see \fB^H\fR) (7.5).
|
||
.TP
|
||
\fB^X\fR
|
||
Unused.
|
||
.TP
|
||
\fB^Y\fR
|
||
Exposes one more line above the current screen, leaving the cursor where
|
||
it is if possible. (No mnemonic value for this key; however, it is next
|
||
to \fB^U\fR which scrolls up a bunch.)
|
||
.TP
|
||
\fB^Z\fR
|
||
If supported by the Unix system,
|
||
stops the editor, exiting to the top level shell.
|
||
Same as \fB:stop\fP\s-1CR\s0.
|
||
Otherwise, unused.
|
||
.TP
|
||
\fB^[\ (\fR\s-1ESC\s0\fB)\fR
|
||
Cancels a partially formed command, such as a \fBz\fR when no following
|
||
character has yet been given; terminates inputs on the last line (read
|
||
by commands such as \fB: /\fR and \fB?\fR); ends insertions of new text
|
||
into the buffer.
|
||
If an \s-1ESC\s0 is given when quiescent in command state, the editor
|
||
rings the bell or flashes the screen. The user can thus hit \s-1ESC\s0 if
|
||
he doesn't know what is happening till the editor rings the bell.
|
||
If the user doesn't know whether he is in insert mode
|
||
he can type \s-1ESC\s0\fBa\fR,
|
||
and then material to be input; the material will be inserted correctly
|
||
whether or not he was in insert mode when he started (1.6, 3.1, 7.5).
|
||
.TP
|
||
\fB^\e\fR
|
||
Unused.
|
||
.TP
|
||
\fB^]\fR
|
||
Searches for the word which is after the cursor as a tag. Equivalent
|
||
to typing \fB:ta\fR, this word, and then a \s-1CR\s0.
|
||
Mnemonically, this command is \*(lq right to\*(rq (7.3).
|
||
.TP
|
||
\fB^^\fR
|
||
Equivalent to \fB:e #\fR\s-1CR\s0, returning to the previous position
|
||
in the last edited file, or editing a file which the user specified if he
|
||
got a `No write since last change diagnostic' and does not want to have
|
||
to type the file name again (7.3).
|
||
(The user has to do a \fB:w\fR before \fB^^\fR
|
||
will work in this case. If he does not wish to write the file he should
|
||
do \fB:e!\ #\fR\s-1CR\s0 instead.)
|
||
.TP
|
||
\fB^_\fR
|
||
Unused.
|
||
Reserved as the command character for the
|
||
Tektronix 4025 and 4027 terminal.
|
||
.TP
|
||
\fB\fR\s-1SPACE\s0\fB\fR
|
||
Same as
|
||
.B "right arrow"
|
||
(see
|
||
.BR l ).
|
||
.TP
|
||
\fB!\fR
|
||
An operator, which processes lines from the buffer with reformatting commands.
|
||
Follow \fB!\fR with the object to be processed, and then the command name
|
||
terminated by \s-1CR\s0. Doubling \fB!\fR and preceding it by a count
|
||
causes count lines to be filtered; otherwise the count
|
||
is passed on to the object after the \fB!\fR. Thus \fB2!}\fR\fIfmt\fR\s-1CR\s0
|
||
reformats the next two paragraphs by running them through the program
|
||
\fIfmt\fR. If working on \s-1LISP\s0,
|
||
the command \fB!%\fR\fIgrind\fR\s-1CR\s0,
|
||
.\"*
|
||
.\".FS
|
||
.\"*Both
|
||
.\".I fmt
|
||
.\"and
|
||
.\".I grind
|
||
.\"are Berkeley programs and may not be present at all installations.
|
||
.\".FE
|
||
given at the beginning of a
|
||
function, will run the text of the function through the \s-1LISP\s0 grinder
|
||
(6.7, 7.3).
|
||
To read a file or the output of a command into the buffer \fB:r\fR (7.3)
|
||
can be used.
|
||
To simply execute a command, \fB:!\fR (7.3).
|
||
.tr "
|
||
.iP 15
|
||
Precedes a named buffer specification. There are named buffers \fB1\-9\fR
|
||
used for saving deleted text and named buffers \fBa\-z\fR into which the
|
||
user can place text (4.3, 6.3)
|
||
.tr
|
||
.TP
|
||
\fB#\fR
|
||
The macro character which, when followed by a number, will substitute
|
||
for a function key on terminals without function keys (6.9).
|
||
In input mode,
|
||
if this is the erase character, it will delete the last character
|
||
typed in input mode, and must be preceded with a \fB\e\fR to insert
|
||
it, since it normally backs over the last input character.
|
||
.TP
|
||
\fB$\fR
|
||
Moves to the end of the current line. If the \fBlist\fR option is set,
|
||
then the end of each line will be shown by printing a \fB$\fR after the
|
||
end of the displayed text in the line. Given a count, advances to the
|
||
count'th following end of line; thus \fB2$\fR advances to the end of the
|
||
following line.
|
||
.TP
|
||
\fB%\fR
|
||
Moves to the parenthesis or brace \fB{ }\fR which balances the parenthesis
|
||
or brace at the current cursor position.
|
||
.TP
|
||
\fB&\fR
|
||
A synonym for \fB:&\fR\s-1CR\s0, by analogy with the
|
||
.I ex
|
||
.B &
|
||
command.
|
||
.TP
|
||
\fB\(aa\fR
|
||
When followed by a \fB\(aa\fR returns to the previous context at the
|
||
beginning of a line. The previous context is set whenever the current
|
||
line is moved in a non-relative way.
|
||
When followed by a letter \fBa\fR\-\fBz\fR, returns to the line which
|
||
was marked with this letter with a \fBm\fR command, at the first non-white
|
||
character in the line. (2.2, 5.3).
|
||
When used with an operator such as \fBd\fR, the operation takes place
|
||
over complete lines; if \fB\(ga\fR is used, the operation takes place
|
||
from the exact marked place to the current cursor position within the
|
||
line.
|
||
.TP
|
||
\fB(\fR
|
||
Retreats to the beginning of a
|
||
sentence, or to the beginning of a \s-1LISP\s0 s-expression
|
||
if the \fIlisp\fR option is set.
|
||
A sentence ends at a \fB. !\fR or \fB?\fR which is followed by either
|
||
the end of a line or by two spaces. Any number of closing \fB) ] "\fR
|
||
and \fB\(aa\fR characters may appear after the \fB. !\fR or \fB?\fR,
|
||
and before the spaces or end of line. Sentences also begin
|
||
at paragraph and section boundaries
|
||
(see \fB{\fR and \fB[[\fR below).
|
||
A count advances that many sentences (4.2, 6.8).
|
||
.TP
|
||
\fB)\fR
|
||
Advances to the beginning of a sentence.
|
||
A count repeats the effect.
|
||
See \fB(\fR above for the definition of a sentence (4.2, 6.8).
|
||
.TP
|
||
\fB*\fR
|
||
Unused.
|
||
.TP
|
||
\fB+\fR
|
||
Same as \s-1CR\s0 when used as a command.
|
||
.TP
|
||
\fB,\fR
|
||
Reverse of the last \fBf F t\fR or \fBT\fR command, looking the other way
|
||
in the current line. Especially useful after hitting too many \fB;\fR
|
||
characters. A count repeats the search.
|
||
.TP
|
||
\fB\-\fR
|
||
Retreats to the previous line at the first non-white character.
|
||
This is the inverse of \fB+\fR and \s-1RETURN\s0.
|
||
If the line moved to is not on the screen, the screen is scrolled, or
|
||
cleared and redrawn if this is not possible.
|
||
If a large amount of scrolling would be required the screen is also cleared
|
||
and redrawn, with the current line at the center (2.3).
|
||
.TP
|
||
\fB\&.\fR
|
||
Repeats the last command which changed the buffer. Especially useful
|
||
when deleting words or lines; the user can delete some words/lines and then
|
||
hit \fB.\fR to delete more and more words/lines.
|
||
Given a count, it passes it on to the command being repeated. Thus after
|
||
a \fB2dw\fR, \fB3.\fR deletes three words (3.3, 6.3, 7.2, 7.4).
|
||
.TP
|
||
\fB/\fR
|
||
Reads a string from the last line on the screen, and scans forward for
|
||
the next occurrence of this string. The normal input editing sequences may
|
||
be used during the input on the bottom line; an returns to command state
|
||
without ever searching.
|
||
The search begins when the user hits \s-1CR\s0 to terminate the pattern;
|
||
the cursor moves to the beginning of the last line to indicate that the search
|
||
is in progress; the search may then
|
||
be terminated with a \s-1DEL\s0 or \s-1RUB\s0, or by backspacing when
|
||
at the beginning of the bottom line, returning the cursor to
|
||
its initial position.
|
||
Searches normally wrap end-around to find a string
|
||
anywhere in the buffer.
|
||
.IP
|
||
When used with an operator the enclosed region is normally affected.
|
||
By mentioning an
|
||
offset from the line matched by the pattern the user can force whole lines
|
||
to be affected. To do this a pattern with a closing
|
||
a closing \fB/\fR and then an offset \fB+\fR\fIn\fR or \fB\-\fR\fIn\fR
|
||
must be given.
|
||
.IP
|
||
To include the character \fB/\fR in the search string, it must be escaped
|
||
with a preceding \fB\e\fR.
|
||
A \fB^\fR at the beginning of the pattern forces the match to occur
|
||
at the beginning of a line only; this speeds the search. A \fB$\fR at
|
||
the end of the pattern forces the match to occur at the end of a line
|
||
only.
|
||
More extended pattern matching is available, see section 7.4;
|
||
unless \fBnomagic\fR ist set in the \fI\&.exrc\fR file the user will have
|
||
to preceed the characters \fB. [ *\fR and \fB~\fR in the search pattern
|
||
with a \fB\e\fR to get them to work as one would naively expect (1.6, 2.2,
|
||
6.1, 7.2, 7.4).
|
||
.TP
|
||
\fB0\fR
|
||
Moves to the first character on the current line.
|
||
Also used, in forming numbers, after an initial \fB1\fR\-\fB9\fR.
|
||
.TP
|
||
\fB1\-9\fR
|
||
Used to form numeric arguments to commands (2.3, 7.2).
|
||
.TP
|
||
\fB:\fR
|
||
A prefix to a set of commands for file and option manipulation and escapes
|
||
to the system. Input is given on the bottom line and terminated with
|
||
an \s-1CR\s0, and the command then executed. The user can return to where
|
||
he was by hitting \s-1DEL\s0 or \s-1RUB\s0 if he hit \fB:\fR accidentally
|
||
(see
|
||
.BR ex (1)
|
||
and primarily 6.2 and 7.3).
|
||
.TP
|
||
\fB;\fR
|
||
Repeats the last single character find which used \fBf F t\fR or \fBT\fR.
|
||
A count iterates the basic scan (4.1).
|
||
.TP
|
||
\fB<\fR
|
||
An operator which shifts lines left one \fIshiftwidth\fR, normally 8
|
||
spaces. Like all operators, affects lines when repeated, as in
|
||
\fB<<\fR. Counts are passed through to the basic object, thus \fB3<<\fR
|
||
shifts three lines (6.6, 7.2).
|
||
.TP
|
||
\fB=\fR
|
||
Reindents line for \s-1LISP\s0, as though they were typed in with \fIlisp\fR
|
||
and \fIautoindent\fR set (6.8).
|
||
.TP
|
||
\fB>\fR
|
||
An operator which shifts lines right one \fIshiftwidth\fR, normally 8
|
||
spaces. Affects lines when repeated as in \fB>>\fR. Counts repeat the
|
||
basic object (6.6, 7.2).
|
||
.TP
|
||
\fB?\fR
|
||
Scans backwards, the opposite of \fB/\fR. See the \fB/\fR description
|
||
above for details on scanning (2.2, 6.1, 7.4).
|
||
.TP
|
||
\fB@\fR
|
||
A macro character (6.9). If this is the kill character, it must be escaped
|
||
with a \e
|
||
to type it in during input mode, as it normally backs over the input
|
||
given on the current line (3.1, 3.4, 7.5).
|
||
.TP
|
||
\fBA\fR
|
||
Appends at the end of line, a synonym for \fB$a\fR (7.2).
|
||
.TP
|
||
\fBB\fR
|
||
Backs up a word, where words are composed of non-blank sequences, placing
|
||
the cursor at the beginning of the word. A count repeats the effect
|
||
(2.4).
|
||
.TP
|
||
\fBC\fR
|
||
Changes the rest of the text on the current line; a synonym for \fBc$\fR.
|
||
.TP
|
||
\fBD\fR
|
||
Deletes the rest of the text on the current line; a synonym for \fBd$\fR.
|
||
.TP
|
||
\fBE\fR
|
||
Moves forward to the end of a word, defined as blanks and non-blanks,
|
||
like \fBB\fR and \fBW\fR. A count repeats the effect.
|
||
.TP
|
||
\fBF\fR
|
||
Finds a single following character, backwards in the current line.
|
||
A count repeats this search that many times (4.1).
|
||
.TP
|
||
\fBG\fR
|
||
Goes to the line number given as preceding argument, or the end of the
|
||
file if no preceding count is given. The screen is redrawn with the
|
||
new current line in the center if necessary (7.2).
|
||
.TP
|
||
\fBH\fR
|
||
.BR "Home arrow" .
|
||
Homes the cursor to the top line on the screen. If a count is given,
|
||
then the cursor is moved to the count'th line on the screen.
|
||
In any case the cursor is moved to the first non-white character on the
|
||
line. If used as the target of an operator, full lines are affected
|
||
(2.3, 3.2).
|
||
.TP
|
||
\fBI\fR
|
||
Inserts at the beginning of a line; a synonym for \fB^i\fR.
|
||
.TP
|
||
\fBJ\fR
|
||
Joins together lines, supplying appropriate white space: one space between
|
||
words, two spaces after a \fB.\fR, and no spaces at all if the first
|
||
character of the joined on line is \fB)\fR. A count causes that many
|
||
lines to be joined rather than the default two (6.5, 7.1f).
|
||
.TP
|
||
\fBK\fR
|
||
Unused.
|
||
.TP
|
||
\fBL\fR
|
||
Moves the cursor to the first non-white character of the last line on
|
||
the screen. With a count, to the first non-white of the count'th line
|
||
from the bottom. Operators affect whole lines when used with \fBL\fR
|
||
(2.3).
|
||
.TP
|
||
\fBM\fR
|
||
Moves the cursor to the middle line on the screen, at the first non-white
|
||
position on the line (2.3).
|
||
.TP
|
||
\fBN\fR
|
||
Scans for the next match of the last pattern given to
|
||
\fB/\fR or \fB?\fR, but in the reverse direction; this is the reverse
|
||
of \fBn\fR.
|
||
.TP
|
||
\fBO\fR
|
||
Opens a new line above the current line and inputs text there up to an
|
||
\s-1ESC\s0. A count can be used on dumb terminals to specify a number
|
||
of lines to be opened; this is generally obsolete, as the \fIslowopen\fR
|
||
option works better (3.1).
|
||
.TP
|
||
\fBP\fR
|
||
Puts the last deleted text back before/above the cursor. The text goes
|
||
back as whole lines above the cursor if it was deleted as whole lines.
|
||
Otherwise the text is inserted between the characters before and at the
|
||
cursor. May be preceded by a named buffer specification \fB"\fR\fIx\fR
|
||
to retrieve the contents of the buffer; buffers \fB1\fR\-\fB9\fR contain
|
||
deleted material, buffers \fBa\fR\-\fBz\fR are available for general
|
||
use (6.3).
|
||
.TP
|
||
\fBQ\fR
|
||
Quits from \fIvi\fR to \fIex\fR command mode. In this mode, whole lines
|
||
form commands, ending with a \s-1RETURN\s0. One can give all the \fB:\fR
|
||
commands; the editor supplies the \fB:\fR as a prompt (7.7).
|
||
.TP
|
||
\fBR\fR
|
||
Replaces characters on the screen with characters typed (overlay fashion).
|
||
Terminates with an \s-1ESC\s0.
|
||
.TP
|
||
\fBS\fR
|
||
Changes whole lines, a synonym for \fBcc\fR. A count substitutes for
|
||
that many lines. The lines are saved in the numeric buffers, and erased
|
||
on the screen before the substitution begins.
|
||
.TP
|
||
\fBT\fR
|
||
Takes a single following character, locates the character before the
|
||
cursor in the current line, and places the cursor just after that character.
|
||
A count repeats the effect. Most useful with operators such as \fBd\fR
|
||
(4.1).
|
||
.TP
|
||
\fBU\fR
|
||
Restores the current line to its state before the user started changing it
|
||
(3.5).
|
||
.TP
|
||
\fBV\fR
|
||
Unused.
|
||
.TP
|
||
\fBW\fR
|
||
Moves forward to the beginning of a word in the current line,
|
||
where words are defined as sequences of blank/non-blank characters.
|
||
A count repeats the effect (2.4).
|
||
.TP
|
||
\fBX\fR
|
||
Deletes the character before the cursor. A count repeats the effect,
|
||
but only characters on the current line are deleted.
|
||
.TP
|
||
\fBY\fR
|
||
Yanks a copy of the current line into the unnamed buffer, to be put back
|
||
by a later \fBp\fR or \fBP\fR; a very useful synonym for \fByy\fR.
|
||
A count yanks that many lines. May be preceded by a buffer name to put
|
||
lines in that buffer (7.4).
|
||
.TP
|
||
\fBZZ\fR
|
||
Exits the editor.
|
||
(Same as \fB:x\fP\s-1CR\s0.)
|
||
If any changes have been made, the buffer is written out to the current file.
|
||
Then the editor quits.
|
||
.TP
|
||
\fB[[\fR
|
||
Backs up to the previous section boundary. A section begins at each
|
||
macro in the \fIsections\fR option,
|
||
normally a `.NH' or `.SH' and also at lines which which start
|
||
with a formfeed \fB^L\fR. Lines beginning with \fB{\fR also stop \fB[[\fR;
|
||
this makes it useful for looking backwards, a function at a time, in C
|
||
programs. If the option \fIlisp\fR is set, stops at each \fB(\fR at the
|
||
beginning of a line, and is thus useful for moving backwards at the top
|
||
level \s-1LISP\s0 objects. (4.2, 6.1, 6.6, 7.2).
|
||
.TP
|
||
\fB\e\fR
|
||
Unused.
|
||
.TP
|
||
\fB]]\fR
|
||
Forward to a section boundary, see \fB[[\fR for a definition (4.2, 6.1,
|
||
6.6, 7.2).
|
||
.TP
|
||
\fB^\fR
|
||
Moves to the first non-white position on the current line (4.4).
|
||
.TP
|
||
\fB_\fR
|
||
Unused.
|
||
.TP
|
||
\fB\(ga\fR
|
||
When followed by a \fB\(ga\fR returns to the previous context.
|
||
The previous context is set whenever the current
|
||
line is moved in a non-relative way.
|
||
When followed by a letter \fBa\fR\-\fBz\fR, returns to the position which
|
||
was marked with this letter with a \fBm\fR command.
|
||
When used with an operator such as \fBd\fR, the operation takes place
|
||
from the exact marked place to the current position within the line;
|
||
if using \fB\(aa\fR, the operation takes place over complete lines
|
||
(2.2, 5.3).
|
||
.TP
|
||
\fBa\fR
|
||
Appends arbitrary text after the current cursor position; the insert
|
||
can continue onto multiple lines by using \s-1RETURN\s0 within the insert.
|
||
A count causes the inserted text to be replicated, but only if the inserted
|
||
text is all on one line.
|
||
The insertion terminates with an \s-1ESC\s0 (3.1, 7.2).
|
||
.TP
|
||
\fBb\fR
|
||
Backs up to the beginning of a word in the current line. A word is a
|
||
sequence of alphanumerics, or a sequence of special characters.
|
||
A count repeats the effect (2.4).
|
||
.TP
|
||
\fBc\fR
|
||
An operator which changes the following object, replacing it with the
|
||
following input text up to an \s-1ESC\s0. If more than part of a single
|
||
line is affected, the text which is changed away is saved in the numeric named
|
||
buffers. If only part of the current line is affected, then the last
|
||
character to be changed away is marked with a \fB$\fR.
|
||
A count causes that many objects to be affected, thus both
|
||
\fB3c)\fR and \fBc3)\fR change the following three sentences (7.4).
|
||
.TP
|
||
\fBd\fR
|
||
An operator which deletes the following object. If more than part of
|
||
a line is affected, the text is saved in the numeric buffers.
|
||
A count causes that many objects to be affected; thus \fB3dw\fR is the
|
||
same as \fBd3w\fR (3.3, 3.4, 4.1, 7.4).
|
||
.TP
|
||
\fBe\fR
|
||
Advances to the end of the next word, defined as for \fBb\fR and \fBw\fR.
|
||
A count repeats the effect (2.4, 3.1).
|
||
.TP
|
||
\fBf\fR
|
||
Finds the first instance of the next character following the cursor on
|
||
the current line. A count repeats the find (4.1).
|
||
.TP
|
||
\fBg\fR
|
||
Unused.
|
||
.sp
|
||
Arrow keys
|
||
.BR h ,
|
||
.BR j ,
|
||
.BR k ,
|
||
.BR l ,
|
||
and
|
||
.BR H .
|
||
.TP
|
||
\fBh\fR
|
||
.B "Left arrow" .
|
||
Moves the cursor one character to the left.
|
||
Like the other arrow keys, either
|
||
.BR h ,
|
||
the
|
||
.B "left arrow"
|
||
key, or one of the synonyms (\fB^H\fP) has the same effect.
|
||
A count repeats the effect (3.1, 7.5).
|
||
.TP
|
||
\fBi\fR
|
||
Inserts text before the cursor, otherwise like \fBa\fR (7.2).
|
||
.TP
|
||
\fBj\fR
|
||
.B "Down arrow" .
|
||
Moves the cursor one line down in the same column.
|
||
If the position does not exist,
|
||
.I vi
|
||
comes as close as possible to the same column.
|
||
Synonyms include
|
||
.B ^J
|
||
(linefeed) and
|
||
.B ^N .
|
||
.TP
|
||
\fBk\fR
|
||
.B "Up arrow" .
|
||
Moves the cursor one line up.
|
||
.B ^P
|
||
is a synonym.
|
||
.TP
|
||
\fBl\fR
|
||
.B "Right arrow" .
|
||
Moves the cursor one character to the right.
|
||
\s-1SPACE\s0 is a synonym.
|
||
.TP
|
||
\fBm\fR
|
||
Marks the current position of the cursor in the mark register which is
|
||
specified by the next character \fBa\fR\-\fBz\fR. The user can return
|
||
to this position or use it with an operator
|
||
using \fB\(ga\fR or \fB\(aa\fR (5.3).
|
||
.TP
|
||
\fBn\fR
|
||
Repeats the last \fB/\fR or \fB?\fR scanning commands (2.2).
|
||
.TP
|
||
\fBo\fR
|
||
Opens new lines below the current line; otherwise like \fBO\fR (3.1).
|
||
.TP
|
||
\fBp\fR
|
||
Puts text after/below the cursor; otherwise like \fBP\fR (6.3).
|
||
.TP
|
||
\fBq\fR
|
||
Unused.
|
||
.TP
|
||
\fBr\fR
|
||
Replaces the single character at the cursor with a single character typed.
|
||
The new character may be a \s-1RETURN\s0; this is the easiest
|
||
way to split lines. A count replaces each of the following count characters
|
||
with the single character given; see \fBR\fR above which is the more
|
||
usually useful iteration of \fBr\fR (3.2).
|
||
.TP
|
||
\fBs\fR
|
||
Changes the single character under the cursor to the text which follows
|
||
up to an \s-1ESC\s0; given a count, that many characters from the current
|
||
line are changed. The last character to be changed is marked with \fB$\fR
|
||
as in \fBc\fR (3.2).
|
||
.TP
|
||
\fBt\fR
|
||
Advances the cursor upto the character before the next character typed.
|
||
Most useful with operators such as \fBd\fR and \fBc\fR to delete the
|
||
characters up to a following character. One can use \fB.\fR to delete
|
||
more if this doesn't delete enough the first time (4.1).
|
||
.TP
|
||
\fBu\fR
|
||
Undoes the last change made to the current buffer. If repeated, will
|
||
alternate between these two states, thus is its own inverse. When used
|
||
after an insert which inserted text on more than one line, the lines are
|
||
saved in the numeric named buffers (3.5).
|
||
.TP
|
||
\fBv\fR
|
||
Unused.
|
||
.TP
|
||
\fBw\fR
|
||
Advances to the beginning of the next word, as defined by \fBb\fR (2.4).
|
||
.TP
|
||
\fBx\fR
|
||
Deletes the single character under the cursor. With a count deletes
|
||
deletes that many characters forward from the cursor position, but only
|
||
on the current line (6.5).
|
||
.TP
|
||
\fBy\fR
|
||
An operator, yanks the following object into the unnamed temporary buffer.
|
||
If preceded by a named buffer specification, \fB"\fR\fIx\fR, the text
|
||
is placed in that buffer also. Text can be recovered by a later \fBp\fR
|
||
or \fBP\fR (7.4).
|
||
.TP
|
||
\fBz\fR
|
||
Redraws the screen with the current line placed as specified by the following
|
||
character: \s-1RETURN\s0 specifies the top of the screen, \fB.\fR the
|
||
center of the screen, and \fB\-\fR at the bottom of the screen.
|
||
A count may be given after the \fBz\fR and before the following character
|
||
to specify the new screen size for the redraw.
|
||
A count before the \fBz\fR gives the number of the line to place in the
|
||
center of the screen instead of the default current line. (5.4)
|
||
.TP
|
||
\fB{\fR
|
||
Retreats to the beginning of the beginning of the preceding paragraph.
|
||
A paragraph begins at each macro in the \fIparagraphs\fR option, normally
|
||
`.IP', `.LP', `.PP', `.QP' and `.bp'.
|
||
A paragraph also begins after a completely
|
||
empty line, and at each section boundary (see \fB[[\fR above) (4.2, 6.8,
|
||
7.6).
|
||
.TP
|
||
\fB|\fR
|
||
Places the cursor on the character in the column specified
|
||
by the count (7.1, 7.2).
|
||
.TP
|
||
\fB}\fR
|
||
Advances to the beginning of the next paragraph. See \fB{\fR for the
|
||
definition of paragraph (4.2, 6.8, 7.6).
|
||
.TP
|
||
\fB~\fR
|
||
Switches the case of the given count of characters
|
||
starting from the current cursor position to the end of the current line.
|
||
Non-alphabetic characters remain unchanged.
|
||
.TP
|
||
\fB^?\ (\s-1\fRDEL\fB\s0)\fR
|
||
Interrupts the editor, returning it to command accepting state (1.6,
|
||
7.5).
|
||
.SH "ENVIRONMENT VARIABLES"
|
||
.PP
|
||
The following environment variables affect the behaviour of vi:
|
||
.TP
|
||
.B COLUMNS
|
||
Overrides the system-supplied number of terminal columns.
|
||
.TP
|
||
.B EXINIT
|
||
Contains commands to execute at editor startup.
|
||
If this variable is present, the
|
||
.I .exrc
|
||
file in the user's home directory is ignored.
|
||
.TP
|
||
.B HOME
|
||
Used to locate the editor startup file.
|
||
.TP
|
||
.BR LANG ", " LC_ALL
|
||
See
|
||
.IR locale (7).
|
||
.TP
|
||
.B LC_CTYPE
|
||
Determines the mapping of bytes to characters,
|
||
types of characters,
|
||
case conversion
|
||
and composition of character classes in regular expressions.
|
||
.TP
|
||
.B LC_MESSAGES
|
||
Sets the language used for diagnostic and informal messages.
|
||
.TP
|
||
.B LINES
|
||
Overrides the system-supplied number of terminal lines.
|
||
.TP
|
||
.B NLSPATH
|
||
See
|
||
.IR catopen (3).
|
||
.TP
|
||
.B SHELL
|
||
The program file used to execute external commands.
|
||
.TP
|
||
.B TERM
|
||
Determines the terminal type.
|
||
.SH FILES
|
||
.TP
|
||
.B /usr/libexec/expreserve
|
||
preserve command
|
||
.TP
|
||
.B /usr/libexec/exrecover
|
||
recover command
|
||
.TP
|
||
.B /etc/termcap
|
||
describes capabilities of terminals
|
||
.TP
|
||
.B $HOME/.exrc
|
||
editor startup file
|
||
.TP
|
||
.B /var/tmp/Ex\fInnnnnnnnnn\fP
|
||
editor temporary
|
||
.TP
|
||
.B /var/tmp/Rx\fInnnnnnnnnn\fP
|
||
named buffer temporary
|
||
.TP
|
||
.B /var/preserve
|
||
preservation directory
|
||
.SH SEE ALSO
|
||
ex(1),
|
||
edit(1),
|
||
\*(lqVi Quick Reference\*(rq card,
|
||
\*(lqAn Introduction to Display Editing with Vi\*(rq.
|
||
.SH AUTHOR
|
||
William Joy.
|
||
.PP
|
||
Mark Horton added macros to
|
||
.I visual
|
||
mode and was maintaining version 3.
|
||
.PP
|
||
This version incorporates changes by Gunnar Ritter.
|
||
.SH NOTES
|
||
Software tabs using \fB^T\fP work only immediately after the
|
||
.I autoindent.
|
||
.PP
|
||
Left and right shifts on intelligent terminals don't make use of
|
||
insert and delete character operations in the terminal.
|
||
.PP
|
||
The
|
||
.I wrapmargin
|
||
option can be fooled since it looks at output columns when blanks are typed.
|
||
If a long word passes through the margin and onto the next line without a
|
||
break, then the line won't be broken.
|
||
.PP
|
||
Insert/delete within a line can be slow if tabs are present on intelligent
|
||
terminals, since the terminals need help in doing this correctly.
|
||
.\".PP
|
||
.\"Saving text on deletes in the named buffers is somewhat inefficient.
|
||
.PP
|
||
The
|
||
.I source
|
||
command does not work when executed as \fB:source\fP;
|
||
there is no way to use the \fB:append\fP, \fB:change\fP,
|
||
and \fB:insert\fP commands, since it is not possible to give
|
||
more than one line of input to a \fB:\fP escape. To use these
|
||
on a \fB:global\fP one must \fBQ\fP to \fIex\fP command mode,
|
||
execute them, and then reenter the screen editor with
|
||
.I vi
|
||
or
|
||
.I open.
|