2013-12-06 12:04:52 +01:00
|
|
|
.\" $NetBSD: vi.1,v 1.2 2013/11/22 15:52:05 christos Exp $
|
2013-01-22 12:03:53 +01:00
|
|
|
.\" The Regents of the University of California. All rights reserved.
|
|
|
|
.\" Copyright (c) 1994, 1995, 1996
|
|
|
|
.\" Keith Bostic. All rights reserved.
|
|
|
|
.\"
|
|
|
|
.\" This document may not be republished without written permission from
|
|
|
|
.\" Keith Bostic.
|
|
|
|
.\"
|
|
|
|
.\" See the LICENSE file for redistribution information.
|
|
|
|
.\"
|
2013-12-06 12:04:52 +01:00
|
|
|
.\" Id: vi.1,v 8.53 2001/01/28 13:20:06 skimo Exp (Berkeley) Date: 2001/01/28 13:20:06
|
2013-01-22 12:03:53 +01:00
|
|
|
.\"
|
|
|
|
.TH VI 1 "%Q%"
|
|
|
|
.UC
|
|
|
|
.SH NAME
|
|
|
|
ex, vi, view \- text editors
|
|
|
|
.SH SYNOPSIS
|
|
|
|
.B ex
|
|
|
|
[\c
|
|
|
|
.B -eFGRrSsv\c
|
|
|
|
] [\c
|
|
|
|
.BI -c " cmd"\c
|
|
|
|
] [\c
|
|
|
|
.BI -t " tag"\c
|
|
|
|
] [\c
|
|
|
|
.BI -w " size"\c
|
|
|
|
] [file ...]
|
|
|
|
.br
|
|
|
|
.B vi
|
|
|
|
[\c
|
|
|
|
.B -eFlRrSv\c
|
|
|
|
] [\c
|
|
|
|
.BI -c " cmd"\c
|
|
|
|
] [\c
|
|
|
|
.BI -t " tag"\c
|
|
|
|
] [\c
|
|
|
|
.BI -w " size"\c
|
|
|
|
] [file ...]
|
|
|
|
.br
|
|
|
|
.B view
|
|
|
|
[\c
|
|
|
|
.B -eFGRrSv\c
|
|
|
|
] [\c
|
|
|
|
.BI -c " cmd"\c
|
|
|
|
] [\c
|
|
|
|
.BI -t " tag"\c
|
|
|
|
] [\c
|
|
|
|
.BI -w " size"\c
|
|
|
|
] [file ...]
|
|
|
|
.SH LICENSE
|
|
|
|
The vi program is freely redistributable. You are welcome to copy,
|
|
|
|
modify and share it with others under the conditions listed in the
|
|
|
|
LICENSE file. If any company (not individual!) finds vi sufficiently
|
|
|
|
useful that you would have purchased it, or if any company wishes to
|
|
|
|
redistribute it, contributions to the authors would be appreciated.
|
|
|
|
.SH DESCRIPTION
|
|
|
|
.I \&Vi
|
|
|
|
is a screen oriented text editor.
|
|
|
|
.I \&Ex
|
|
|
|
is a line-oriented text editor.
|
|
|
|
.I \&Ex
|
|
|
|
and
|
|
|
|
.I \&vi
|
|
|
|
are different interfaces to the same program,
|
|
|
|
and it is possible to switch back and forth during an edit session.
|
|
|
|
.I View
|
|
|
|
is the equivalent of using the
|
|
|
|
.B \-R
|
|
|
|
(read-only) option of
|
|
|
|
.IR \&vi .
|
|
|
|
.PP
|
|
|
|
This manual page is the one provided with the
|
|
|
|
.I nex/nvi
|
|
|
|
versions of the
|
|
|
|
.I ex/vi
|
|
|
|
text editors.
|
|
|
|
.I Nex/nvi
|
|
|
|
are intended as bug-for-bug compatible replacements for the original
|
|
|
|
Fourth Berkeley Software Distribution (4BSD)
|
|
|
|
.I \&ex
|
|
|
|
and
|
|
|
|
.I \&vi
|
|
|
|
programs.
|
|
|
|
For the rest of this manual page,
|
|
|
|
.I nex/nvi
|
|
|
|
is used only when it's necessary to distinguish it from the historic
|
|
|
|
implementations of
|
|
|
|
.IR ex/vi .
|
|
|
|
.PP
|
|
|
|
This manual page is intended for users already familiar with
|
|
|
|
.IR ex/vi .
|
|
|
|
Anyone else should almost certainly read a good tutorial on the
|
|
|
|
editor before this manual page.
|
|
|
|
If you're in an unfamiliar environment, and you absolutely have to
|
|
|
|
get work done immediately, read the section after the options
|
|
|
|
description, entitled ``Fast Startup''.
|
|
|
|
It's probably enough to get you going.
|
|
|
|
.PP
|
|
|
|
The following options are available:
|
|
|
|
.TP
|
|
|
|
.B \-c
|
|
|
|
Execute
|
|
|
|
.B cmd
|
|
|
|
immediately after starting the edit session.
|
|
|
|
Particularly useful for initial positioning in the file, however
|
|
|
|
.B cmd
|
|
|
|
is not limited to positioning commands.
|
|
|
|
This is the POSIX 1003.2 interface for the historic ``+cmd'' syntax.
|
|
|
|
.I Nex/nvi
|
|
|
|
supports both the old and new syntax.
|
|
|
|
.TP
|
|
|
|
.B \-e
|
|
|
|
Start editing in ex mode, as if the command name were
|
|
|
|
.IR \&ex .
|
|
|
|
.TP
|
|
|
|
.B \-F
|
|
|
|
Don't copy the entire file when first starting to edit.
|
|
|
|
(The default is to make a copy in case someone else modifies
|
|
|
|
the file during your edit session.)
|
|
|
|
.TP
|
|
|
|
.B \-G
|
|
|
|
Start editing in gtags mode, as if the gtagsmode option was set.
|
|
|
|
.TP
|
|
|
|
.B \-l
|
|
|
|
Start editing with the lisp and showmatch options set.
|
|
|
|
.TP
|
|
|
|
.B \-R
|
|
|
|
Start editing in read-only mode, as if the command name was
|
|
|
|
.IR view ,
|
|
|
|
or the
|
|
|
|
.B readonly
|
|
|
|
option was set.
|
|
|
|
.TP
|
|
|
|
.B \-r
|
|
|
|
Recover the specified files, or, if no files are specified,
|
|
|
|
list the files that could be recovered.
|
|
|
|
If no recoverable files by the specified name exist,
|
|
|
|
the file is edited as if the
|
|
|
|
.B \-r
|
|
|
|
option had not been specified.
|
|
|
|
.TP
|
|
|
|
.B \-S
|
|
|
|
Run with the
|
|
|
|
.B secure
|
|
|
|
edit option set, disallowing all access to external programs.
|
|
|
|
.TP
|
|
|
|
.B \-s
|
|
|
|
Enter batch mode; applicable only to
|
|
|
|
.I \&ex
|
|
|
|
edit sessions.
|
|
|
|
Batch mode is useful when running
|
|
|
|
.I \&ex
|
|
|
|
scripts.
|
|
|
|
Prompts, informative messages and other user oriented message
|
|
|
|
are turned off,
|
|
|
|
and no startup files or environmental variables are read.
|
|
|
|
This is the POSIX 1003.2 interface for the historic ``\-'' argument.
|
|
|
|
.I \&Nex/nvi
|
|
|
|
supports both the old and new syntax.
|
|
|
|
.TP
|
|
|
|
.B \-t
|
|
|
|
Start editing at the specified tag.
|
|
|
|
(See
|
|
|
|
.IR ctags (1)).
|
|
|
|
.TP
|
|
|
|
.B \-w
|
|
|
|
Set the initial window size to the specified number of lines.
|
|
|
|
.TP
|
|
|
|
.B \-v
|
|
|
|
Start editing in vi mode, as if the command name was
|
|
|
|
.I \&vi
|
|
|
|
or
|
|
|
|
.IR view .
|
|
|
|
.PP
|
|
|
|
Command input for
|
|
|
|
.I ex/vi
|
|
|
|
is read from the standard input.
|
|
|
|
In the
|
|
|
|
.I \&vi
|
|
|
|
interface, it is an error if standard input is not a terminal.
|
|
|
|
In the
|
|
|
|
.I \&ex
|
|
|
|
interface, if standard input is not a terminal,
|
|
|
|
.I \&ex
|
|
|
|
will read commands from it regardless, however, the session will be a
|
|
|
|
batch mode session, exactly as if the
|
|
|
|
.B \-s
|
|
|
|
option had been specified.
|
|
|
|
.PP
|
|
|
|
.I Ex/vi
|
|
|
|
exits 0 on success, and greater than 0 if an error occurs.
|
|
|
|
.SH FAST STARTUP
|
|
|
|
This section will tell you the minimum amount that you need to
|
|
|
|
do simple editing tasks using
|
|
|
|
.IR \&vi .
|
|
|
|
If you've never used any screen editor before, you're likely to have
|
|
|
|
problems even with this simple introduction.
|
|
|
|
In that case you should find someone that already knows
|
|
|
|
.I \&vi
|
|
|
|
and have them walk you through this section.
|
|
|
|
.PP
|
|
|
|
.I \&Vi
|
|
|
|
is a screen editor.
|
|
|
|
This means that it takes up almost the entire screen, displaying part
|
|
|
|
of the file on each screen line, except for the last line of the screen.
|
|
|
|
The last line of the screen is used for you to give commands to
|
|
|
|
.IR \&vi ,
|
|
|
|
and for
|
|
|
|
.I \&vi
|
|
|
|
to give information to you.
|
|
|
|
.PP
|
|
|
|
The other fact that you need to understand is that
|
|
|
|
.I \&vi
|
|
|
|
is a modeful editor, i.e. you are either entering text or you
|
|
|
|
are executing commands, and you have to be in the right mode
|
|
|
|
to do one or the other.
|
|
|
|
You will be in command mode when you first start editing a file.
|
|
|
|
There are commands that switch you into input mode.
|
|
|
|
There is only one key that takes you out of input mode,
|
|
|
|
and that is the <escape> key.
|
|
|
|
(Key names are written using less-than and greater-than signs, e.g.
|
|
|
|
<escape> means the ``escape'' key, usually labeled ``esc'' on your
|
|
|
|
terminal's keyboard.)
|
|
|
|
If you're ever confused as to which mode you're in,
|
|
|
|
keep entering the <escape> key until
|
|
|
|
.I \&vi
|
|
|
|
beeps at you.
|
|
|
|
(Generally,
|
|
|
|
.I \&vi
|
|
|
|
will beep at you if you try and do something that's not allowed.
|
|
|
|
It will also display error messages.)
|
|
|
|
.PP
|
|
|
|
To start editing a file, enter the command ``vi file_name<carriage-return>''.
|
|
|
|
The command you should enter as soon as you start editing is
|
|
|
|
``:set verbose showmode<carriage-return>''.
|
|
|
|
This will make the editor give you verbose error messages and display
|
|
|
|
the current mode at the bottom of the screen.
|
|
|
|
.PP
|
|
|
|
The commands to move around the file are:
|
|
|
|
.TP
|
|
|
|
.B h
|
|
|
|
Move the cursor left one character.
|
|
|
|
.TP
|
|
|
|
.B j
|
|
|
|
Move the cursor down one line.
|
|
|
|
.TP
|
|
|
|
.B k
|
|
|
|
Move the cursor up one line.
|
|
|
|
.TP
|
|
|
|
.B l
|
|
|
|
Move the cursor right one character.
|
|
|
|
.TP
|
|
|
|
.B <cursor-arrows>
|
|
|
|
The cursor arrow keys should work, too.
|
|
|
|
.TP
|
|
|
|
.B /text<carriage-return>
|
|
|
|
Search for the string ``text'' in the file,
|
|
|
|
and move the cursor to its first character.
|
|
|
|
.PP
|
|
|
|
The commands to enter new text are:
|
|
|
|
.TP
|
|
|
|
.B a
|
|
|
|
Append new text,
|
|
|
|
.I after
|
|
|
|
the cursor.
|
|
|
|
.TP
|
|
|
|
.B i
|
|
|
|
Insert new text,
|
|
|
|
.I before
|
|
|
|
the cursor.
|
|
|
|
.TP
|
|
|
|
.B o
|
|
|
|
Open a new line below the line the cursor is on, and start
|
|
|
|
entering text.
|
|
|
|
.TP
|
|
|
|
.B O
|
|
|
|
Open a new line above the line the cursor is on, and start
|
|
|
|
entering text.
|
|
|
|
.TP
|
|
|
|
.B <escape>
|
|
|
|
Once you've entered input mode using the one of the
|
|
|
|
.BR \&a ,
|
|
|
|
.BR \&i ,
|
|
|
|
.BR \&O
|
|
|
|
or
|
|
|
|
.B \&o
|
|
|
|
commands, use
|
|
|
|
.B <escape>
|
|
|
|
to quit entering text and return to command mode.
|
|
|
|
.PP
|
|
|
|
The commands to copy text are:
|
|
|
|
.TP
|
|
|
|
.B yy
|
|
|
|
Copy the line the cursor is on.
|
|
|
|
.TP
|
|
|
|
.B p
|
|
|
|
Append the copied line after the line the cursor is on.
|
|
|
|
.PP
|
|
|
|
The commands to delete text are:
|
|
|
|
.TP
|
|
|
|
.B dd
|
|
|
|
Delete the line the cursor is on.
|
|
|
|
.TP
|
|
|
|
.B x
|
|
|
|
Delete the character the cursor is on.
|
|
|
|
.PP
|
|
|
|
The commands to write the file are:
|
|
|
|
.TP
|
|
|
|
.B :w<carriage-return>
|
|
|
|
Write the file back to the file with the name that you originally used
|
|
|
|
as an argument on the
|
|
|
|
.I \&vi
|
|
|
|
command line.
|
|
|
|
.TP
|
|
|
|
.B ":w file_name<carriage-return>"
|
|
|
|
Write the file back to the file with the name ``file_name''.
|
|
|
|
.PP
|
|
|
|
The commands to quit editing and exit the editor are:
|
|
|
|
.TP
|
|
|
|
.B :q<carriage-return>
|
|
|
|
Quit editing and leave vi (if you've modified the file, but not
|
|
|
|
saved your changes,
|
|
|
|
.I \&vi
|
|
|
|
will refuse to quit).
|
|
|
|
.TP
|
|
|
|
.B :q!<carriage-return>
|
|
|
|
Quit, discarding any modifications that you may have made.
|
|
|
|
.PP
|
|
|
|
One final caution.
|
|
|
|
Unusual characters can take up more than one column on the screen,
|
|
|
|
and long lines can take up more than a single screen line.
|
|
|
|
The above commands work on ``physical'' characters and lines,
|
|
|
|
i.e. they affect the entire line no matter how many screen lines it
|
|
|
|
takes up and the entire character no matter how many screen columns
|
|
|
|
it takes up.
|
|
|
|
.SH VI COMMANDS
|
|
|
|
The following section describes the commands available in the command
|
|
|
|
mode of the
|
|
|
|
.I \&vi
|
|
|
|
editor.
|
|
|
|
In each entry below, the tag line is a usage synopsis for the command
|
|
|
|
character.
|
|
|
|
.PP
|
|
|
|
.TP
|
|
|
|
.B "[count] <control-A>"
|
|
|
|
Search forward
|
|
|
|
.I count
|
|
|
|
times for the current word.
|
|
|
|
.TP
|
|
|
|
.B "[count] <control-B>"
|
|
|
|
Page backwards
|
|
|
|
.I count
|
|
|
|
screens.
|
|
|
|
.TP
|
|
|
|
.B "[count] <control-D>"
|
|
|
|
Scroll forward
|
|
|
|
.I count
|
|
|
|
lines.
|
|
|
|
.TP
|
|
|
|
.B "[count] <control-E>"
|
|
|
|
Scroll forward
|
|
|
|
.I count
|
|
|
|
lines, leaving the current line and column as is, if possible.
|
|
|
|
.TP
|
|
|
|
.B "[count] <control-F>"
|
|
|
|
Page forward
|
|
|
|
.I count
|
|
|
|
screens.
|
|
|
|
.TP
|
|
|
|
.B "<control-G>"
|
|
|
|
Display the file information.
|
|
|
|
.TP
|
|
|
|
.B "<control-H>"
|
|
|
|
.TP
|
|
|
|
.B "[count] h"
|
|
|
|
Move the cursor back
|
|
|
|
.I count
|
|
|
|
characters in the current line.
|
|
|
|
.TP
|
|
|
|
.B "[count] <control-J>"
|
|
|
|
.TP
|
|
|
|
.B "[count] <control-N>"
|
|
|
|
.TP
|
|
|
|
.B "[count] j"
|
|
|
|
Move the cursor down
|
|
|
|
.I count
|
|
|
|
lines without changing the current column.
|
|
|
|
.TP
|
|
|
|
.B "<control-L>"
|
|
|
|
.TP
|
|
|
|
.B "<control-R>"
|
|
|
|
Repaint the screen.
|
|
|
|
.TP
|
|
|
|
.B "[count] <control-M>"
|
|
|
|
.TP
|
|
|
|
.B "[count] +"
|
|
|
|
Move the cursor down
|
|
|
|
.I count
|
|
|
|
lines to the first nonblank character of that line.
|
|
|
|
.TP
|
|
|
|
.B "[count] <control-P>"
|
|
|
|
.TP
|
|
|
|
.B "[count] k"
|
|
|
|
Move the cursor up
|
|
|
|
.I count
|
|
|
|
lines, without changing the current column.
|
|
|
|
.TP
|
|
|
|
.B "<control-T>"
|
|
|
|
Return to the most recent tag context.
|
|
|
|
.TP
|
|
|
|
.B "<control-U>"
|
|
|
|
Scroll backwards
|
|
|
|
.I count
|
|
|
|
lines.
|
|
|
|
.TP
|
|
|
|
.B "<control-W>"
|
|
|
|
Switch to the next lower screen in the window, or, to the first
|
|
|
|
screen if there are no lower screens in the window.
|
|
|
|
.TP
|
|
|
|
.B "<control-Y>"
|
|
|
|
Scroll backwards
|
|
|
|
.I count
|
|
|
|
lines, leaving the current line and column as is, if possible.
|
|
|
|
.TP
|
|
|
|
.B "<control-Z>"
|
|
|
|
Suspend the current editor session.
|
|
|
|
.TP
|
|
|
|
.B "<escape>"
|
|
|
|
Execute
|
|
|
|
.I \&ex
|
|
|
|
commands or cancel partial commands.
|
|
|
|
.TP
|
|
|
|
.B "<control-]>"
|
|
|
|
Push a tag reference onto the tag stack.
|
|
|
|
In gtagsmode, if at the first column of line,
|
|
|
|
locate function references otherwise function definitions.
|
|
|
|
.TP
|
|
|
|
.B "<control-^>"
|
|
|
|
Switch to the most recently edited file.
|
|
|
|
.TP
|
|
|
|
.B "[count] <space>"
|
|
|
|
.TP
|
|
|
|
.B "[count] l"
|
|
|
|
Move the cursor forward
|
|
|
|
.I count
|
|
|
|
characters without changing the current line.
|
|
|
|
.TP
|
|
|
|
.B "[count] ! motion shell-argument(s)"
|
|
|
|
Replace text with results from a shell command.
|
|
|
|
.TP
|
|
|
|
.B "[count] # #|+|-"
|
|
|
|
Increment or decrement the cursor number.
|
|
|
|
.TP
|
|
|
|
.B "[count] $"
|
|
|
|
Move the cursor to the end of a line.
|
|
|
|
.TP
|
|
|
|
.B "%"
|
|
|
|
Move to the matching character.
|
|
|
|
.TP
|
|
|
|
.B "&"
|
|
|
|
Repeat the previous substitution command on the current line.
|
|
|
|
.TP
|
|
|
|
.B "'<character>"
|
|
|
|
.TP
|
|
|
|
.B "`<character>"
|
|
|
|
Return to a context marked by the character
|
|
|
|
.IR <character> .
|
|
|
|
.TP
|
|
|
|
.B "[count] ("
|
|
|
|
Back up
|
|
|
|
.I count
|
|
|
|
sentences.
|
|
|
|
.TP
|
|
|
|
.B "[count] )"
|
|
|
|
Move forward
|
|
|
|
.I count
|
|
|
|
sentences.
|
|
|
|
.TP
|
|
|
|
.B "[count] ,"
|
|
|
|
Reverse find character
|
|
|
|
.I count
|
|
|
|
times.
|
|
|
|
.TP
|
|
|
|
.B "[count] -"
|
|
|
|
Move to first nonblank of the previous line,
|
|
|
|
.I count
|
|
|
|
times.
|
|
|
|
.TP
|
|
|
|
.B "[count] ."
|
|
|
|
Repeat the last
|
|
|
|
.I \&vi
|
|
|
|
command that modified text.
|
|
|
|
.TP
|
|
|
|
.B "/RE<carriage-return>"
|
|
|
|
.TP
|
|
|
|
.B "/RE/ [offset]<carriage-return>"
|
|
|
|
.TP
|
|
|
|
.B "?RE<carriage-return>"
|
|
|
|
.TP
|
|
|
|
.B "?RE? [offset]<carriage-return>"
|
|
|
|
.TP
|
|
|
|
.B "N"
|
|
|
|
.TP
|
|
|
|
.B "n"
|
|
|
|
Search forward or backward for a regular expression.
|
|
|
|
.TP
|
|
|
|
.B "0"
|
|
|
|
Move to the first character in the current line.
|
|
|
|
.TP
|
|
|
|
.B ":"
|
|
|
|
Execute an ex command.
|
|
|
|
.TP
|
|
|
|
.B "[count] ;"
|
|
|
|
Repeat the last character find
|
|
|
|
.I count
|
|
|
|
times.
|
|
|
|
.TP
|
|
|
|
.B "[count] < motion"
|
|
|
|
.TP
|
|
|
|
.B "[count] > motion"
|
|
|
|
Shift lines left or right.
|
|
|
|
.TP
|
|
|
|
.B "@ buffer"
|
|
|
|
Execute a named buffer.
|
|
|
|
.TP
|
|
|
|
.B "[count] A"
|
|
|
|
Enter input mode, appending the text after the end of the line.
|
|
|
|
.TP
|
|
|
|
.B "[count] B"
|
|
|
|
Move backwards
|
|
|
|
.I count
|
|
|
|
bigwords.
|
|
|
|
.TP
|
|
|
|
.B "[buffer] [count] C"
|
|
|
|
Change text from the current position to the end-of-line.
|
|
|
|
.TP
|
|
|
|
.B "[buffer] D"
|
|
|
|
Delete text from the current position to the end-of-line.
|
|
|
|
.TP
|
|
|
|
.B "[count] E"
|
|
|
|
Move forward
|
|
|
|
.I count
|
|
|
|
end-of-bigwords.
|
|
|
|
.TP
|
|
|
|
.B "[count] F <character>"
|
|
|
|
Search
|
|
|
|
.I count
|
|
|
|
times backward through the current line for
|
|
|
|
.IR <character> .
|
|
|
|
.TP
|
|
|
|
.B "[count] G"
|
|
|
|
Move to line
|
|
|
|
.IR count ,
|
|
|
|
or the last line of the file if
|
|
|
|
.I count
|
|
|
|
not specified.
|
|
|
|
.TP
|
|
|
|
.B "[count] H"
|
|
|
|
Move to the screen line
|
|
|
|
.I "count - 1"
|
|
|
|
lines below the top of the screen.
|
|
|
|
.TP
|
|
|
|
.B "[count] I"
|
|
|
|
Enter input mode, inserting the text at the beginning of the line.
|
|
|
|
.TP
|
|
|
|
.B "[count] J"
|
|
|
|
Join lines.
|
|
|
|
.TP
|
|
|
|
.B "[count] L"
|
|
|
|
Move to the screen line
|
|
|
|
.I "count - 1"
|
|
|
|
lines above the bottom of the screen.
|
|
|
|
.TP
|
|
|
|
.B " M"
|
|
|
|
Move to the screen line in the middle of the screen.
|
|
|
|
.TP
|
|
|
|
.B "[count] O"
|
|
|
|
Enter input mode, appending text in a new line above the current line.
|
|
|
|
.TP
|
|
|
|
.B "[buffer] P"
|
|
|
|
Insert text from a buffer.
|
|
|
|
.TP
|
|
|
|
.B "Q"
|
|
|
|
Exit
|
|
|
|
.I \&vi
|
|
|
|
(or visual) mode and switch to
|
|
|
|
.I \&ex
|
|
|
|
mode.
|
|
|
|
.TP
|
|
|
|
.B "[count] R"
|
|
|
|
Enter input mode, replacing the characters in the current line.
|
|
|
|
.TP
|
|
|
|
.B "[buffer] [count] S"
|
|
|
|
Substitute
|
|
|
|
.I count
|
|
|
|
lines.
|
|
|
|
.TP
|
|
|
|
.B "[count] T <character>"
|
|
|
|
Search backwards,
|
|
|
|
.I count
|
|
|
|
times,
|
|
|
|
through the current line for the character
|
|
|
|
.I after
|
|
|
|
the specified
|
|
|
|
.IR <character> .
|
|
|
|
.TP
|
|
|
|
.B "U"
|
|
|
|
Restore the current line to its state before the cursor last
|
|
|
|
moved to it.
|
|
|
|
.TP
|
|
|
|
.B "[count] W"
|
|
|
|
Move forward
|
|
|
|
.I count
|
|
|
|
bigwords.
|
|
|
|
.TP
|
|
|
|
.B "[buffer] [count] X"
|
|
|
|
Delete
|
|
|
|
.I count
|
|
|
|
characters before the cursor.
|
|
|
|
.TP
|
|
|
|
.B "[buffer] [count] Y"
|
|
|
|
Copy (or ``yank'')
|
|
|
|
.I count
|
|
|
|
lines into the specified buffer.
|
|
|
|
.TP
|
|
|
|
.B "ZZ"
|
|
|
|
Write the file and exit
|
|
|
|
.IR \&vi .
|
|
|
|
.TP
|
|
|
|
.B "[count] [["
|
|
|
|
Back up
|
|
|
|
.I count
|
|
|
|
section boundaries.
|
|
|
|
.TP
|
|
|
|
.B "[count] ]]"
|
|
|
|
Move forward
|
|
|
|
.I count
|
|
|
|
section boundaries.
|
|
|
|
.TP
|
|
|
|
.B "\&^"
|
|
|
|
Move to first nonblank character on the current line.
|
|
|
|
.TP
|
|
|
|
.B "[count] _"
|
|
|
|
Move down
|
|
|
|
.I "count - 1"
|
|
|
|
lines, to the first nonblank character.
|
|
|
|
.TP
|
|
|
|
.B "[count] a"
|
|
|
|
Enter input mode, appending the text after the cursor.
|
|
|
|
.TP
|
|
|
|
.B "[count] b"
|
|
|
|
Move backwards
|
|
|
|
.I count
|
|
|
|
words.
|
|
|
|
.TP
|
|
|
|
.B "[buffer] [count] c motion"
|
|
|
|
Change a region of text.
|
|
|
|
.TP
|
|
|
|
.B "[buffer] [count] d motion"
|
|
|
|
Delete a region of text.
|
|
|
|
.TP
|
|
|
|
.B "[count] e"
|
|
|
|
Move forward
|
|
|
|
.I count
|
|
|
|
end-of-words.
|
|
|
|
.TP
|
|
|
|
.B "[count] f<character>"
|
|
|
|
Search forward,
|
|
|
|
.I count
|
|
|
|
times, through the rest of the current line for
|
|
|
|
.IR <character> .
|
|
|
|
.TP
|
|
|
|
.B "[count] i"
|
|
|
|
Enter input mode, inserting the text before the cursor.
|
|
|
|
.TP
|
|
|
|
.B "m <character>"
|
|
|
|
Save the current context (line and column) as
|
|
|
|
.IR <character> .
|
|
|
|
.TP
|
|
|
|
.B "[count] o"
|
|
|
|
Enter input mode, appending text in a new line under the current line.
|
|
|
|
.TP
|
|
|
|
.B "[buffer] p"
|
|
|
|
Append text from a buffer.
|
|
|
|
.TP
|
|
|
|
.B "[count] r <character>"
|
|
|
|
Replace
|
|
|
|
.I count
|
|
|
|
characters.
|
|
|
|
.TP
|
|
|
|
.B "[buffer] [count] s"
|
|
|
|
Substitute
|
|
|
|
.I count
|
|
|
|
characters in the current line starting with the current character.
|
|
|
|
.TP
|
|
|
|
.B "[count] t <character>"
|
|
|
|
Search forward,
|
|
|
|
.I count
|
|
|
|
times, through the current line for the character immediately
|
|
|
|
.I before
|
|
|
|
.IR <character> .
|
|
|
|
.TP
|
|
|
|
.B "u"
|
|
|
|
Undo the last change made to the file.
|
|
|
|
.TP
|
|
|
|
.B "[count] w"
|
|
|
|
Move forward
|
|
|
|
.I count
|
|
|
|
words.
|
|
|
|
.TP
|
|
|
|
.B "[buffer] [count] x"
|
|
|
|
Delete
|
|
|
|
.I count
|
|
|
|
characters.
|
|
|
|
.TP
|
|
|
|
.B "[buffer] [count] y motion"
|
|
|
|
Copy (or ``yank'')
|
|
|
|
a text region specified by the
|
|
|
|
.I count
|
|
|
|
and motion into a buffer.
|
|
|
|
.TP
|
|
|
|
.B "[count1] z [count2] -|.|+|^|<carriage-return>"
|
|
|
|
Redraw, optionally repositioning and resizing the screen.
|
|
|
|
.TP
|
|
|
|
.B "[count] {"
|
|
|
|
Move backward
|
|
|
|
.I count
|
|
|
|
paragraphs.
|
|
|
|
.TP
|
|
|
|
.B "[count] |"
|
|
|
|
Move to a specific
|
|
|
|
.I column
|
|
|
|
position on the current line.
|
|
|
|
.TP
|
|
|
|
.B "[count] }"
|
|
|
|
Move forward
|
|
|
|
.I count
|
|
|
|
paragraphs.
|
|
|
|
.TP
|
|
|
|
.B "[count] ~"
|
|
|
|
Reverse the case of the next
|
|
|
|
.I count
|
|
|
|
character(s).
|
|
|
|
.TP
|
|
|
|
.B "[count] ~ motion"
|
|
|
|
Reverse the case of the characters in a text region specified by the
|
|
|
|
.I count
|
|
|
|
and
|
|
|
|
.IR motion .
|
|
|
|
.TP
|
|
|
|
.B "<interrupt>"
|
|
|
|
Interrupt the current operation.
|
|
|
|
.SH VI TEXT INPUT COMMANDS
|
|
|
|
The following section describes the commands available in the text
|
|
|
|
input mode of the
|
|
|
|
.I \&vi
|
|
|
|
editor.
|
|
|
|
.PP
|
|
|
|
.TP
|
|
|
|
.B "<nul>"
|
|
|
|
Replay the previous input.
|
|
|
|
.TP
|
|
|
|
.B "<control-D>"
|
|
|
|
Erase to the previous
|
|
|
|
.B shiftwidth
|
|
|
|
column boundary.
|
|
|
|
.TP
|
|
|
|
.B "^<control-D>"
|
|
|
|
Erase all of the autoindent characters, and reset the autoindent level.
|
|
|
|
.TP
|
|
|
|
.B "0<control-D>"
|
|
|
|
Erase all of the autoindent characters.
|
|
|
|
.TP
|
|
|
|
.B "<control-T>"
|
|
|
|
Insert sufficient
|
|
|
|
.I <tab>
|
|
|
|
and
|
|
|
|
.I <space>
|
|
|
|
characters to move forward to the next
|
|
|
|
.B shiftwidth
|
|
|
|
column boundary.
|
|
|
|
If
|
|
|
|
.B expandtab
|
|
|
|
is set, only insert
|
|
|
|
.I <space>
|
|
|
|
characters.
|
|
|
|
.TP
|
|
|
|
.B "<erase>
|
|
|
|
.TP
|
|
|
|
.B "<control-H>"
|
|
|
|
Erase the last character.
|
|
|
|
.TP
|
|
|
|
.B "<literal next>"
|
|
|
|
Quote the next character.
|
|
|
|
.TP
|
|
|
|
.B "<escape>
|
|
|
|
Resolve all text input into the file, and return to command mode.
|
|
|
|
.TP
|
|
|
|
.B "<line erase>"
|
|
|
|
Erase the current line.
|
|
|
|
.TP
|
|
|
|
.B "<control-W>"
|
|
|
|
.TP
|
|
|
|
.B "<word erase>"
|
|
|
|
Erase the last word.
|
|
|
|
The definition of word is dependent on the
|
|
|
|
.B altwerase
|
|
|
|
and
|
|
|
|
.B ttywerase
|
|
|
|
options.
|
|
|
|
.TP
|
|
|
|
.B "<control-X>[0-9A-Fa-f]+"
|
|
|
|
Insert a character with the specified hexadecimal value into the text.
|
|
|
|
.TP
|
|
|
|
.B "<interrupt>"
|
|
|
|
Interrupt text input mode, returning to command mode.
|
|
|
|
.SH EX COMMANDS
|
|
|
|
The following section describes the commands available in the
|
|
|
|
.I \&ex
|
|
|
|
editor.
|
|
|
|
In each entry below, the tag line is a usage synopsis for the command.
|
|
|
|
.PP
|
|
|
|
.TP
|
|
|
|
.B "<end-of-file>"
|
|
|
|
Scroll the screen.
|
|
|
|
.TP
|
|
|
|
.B "! argument(s)"
|
|
|
|
.TP
|
|
|
|
.B "[range]! argument(s)"
|
|
|
|
Execute a shell command, or filter lines through a shell command.
|
|
|
|
.TP
|
|
|
|
.B \&"
|
|
|
|
A comment.
|
|
|
|
.TP
|
|
|
|
.B "[range] nu[mber] [count] [flags]"
|
|
|
|
.TP
|
|
|
|
.B "[range] # [count] [flags]"
|
|
|
|
Display the selected lines, each preceded with its line number.
|
|
|
|
.TP
|
|
|
|
.B "@ buffer"
|
|
|
|
.TP
|
|
|
|
.B "* buffer"
|
|
|
|
Execute a buffer.
|
|
|
|
.TP
|
|
|
|
.B "[line] a[ppend][!]"
|
|
|
|
The input text is appended after the specified line.
|
|
|
|
.TP
|
|
|
|
.B "[range] c[hange][!] [count]"
|
|
|
|
The input text replaces the specified range.
|
|
|
|
.TP
|
|
|
|
.B "cs[cope] add | find | help | kill | reset"
|
|
|
|
Execute a Cscope command.
|
|
|
|
.TP
|
|
|
|
.B "[range] d[elete] [buffer] [count] [flags]"
|
|
|
|
Delete the lines from the file.
|
|
|
|
.TP
|
|
|
|
.B "di[splay] b[uffers] | c[onnections] | s[creens] | t[ags]"
|
|
|
|
Display buffers, Cscope connections, screens or tags.
|
|
|
|
.TP
|
|
|
|
.B "[Ee][dit][!] [+cmd] [file]"
|
|
|
|
.TP
|
|
|
|
.B "[Ee]x[!] [+cmd] [file]"
|
|
|
|
Edit a different file.
|
|
|
|
.TP
|
|
|
|
.B "exu[sage] [command]"
|
|
|
|
Display usage for an
|
|
|
|
.I \&ex
|
|
|
|
command.
|
|
|
|
.TP
|
|
|
|
.B "f[ile] [file]"
|
|
|
|
Display and optionally change the file name.
|
|
|
|
.TP
|
|
|
|
.B "[Ff]g [name]"
|
|
|
|
.I \&Vi
|
|
|
|
mode only.
|
|
|
|
Foreground the specified screen.
|
|
|
|
.TP
|
|
|
|
.B "[range] g[lobal] /pattern/ [commands]"
|
|
|
|
.TP
|
|
|
|
.B "[range] v /pattern/ [commands]"
|
|
|
|
Apply commands to lines matching (or not matching) a pattern.
|
|
|
|
.TP
|
|
|
|
.B "he[lp]"
|
|
|
|
Display a help message.
|
|
|
|
.TP
|
|
|
|
.B "[line] i[nsert][!]"
|
|
|
|
The input text is inserted before the specified line.
|
|
|
|
.TP
|
|
|
|
.B "[range] j[oin][!] [count] [flags]"
|
|
|
|
Join lines of text together.
|
|
|
|
.TP
|
|
|
|
.B "[range] l[ist] [count] [flags]"
|
|
|
|
Display the lines unambiguously.
|
|
|
|
.TP
|
|
|
|
.B "map[!] [lhs rhs]"
|
|
|
|
Define or display maps (for
|
|
|
|
.I \&vi
|
|
|
|
only).
|
|
|
|
.TP
|
|
|
|
.B "[line] ma[rk] <character>"
|
|
|
|
.TP
|
|
|
|
.B "[line] k <character>"
|
|
|
|
Mark the line with the mark
|
|
|
|
.IR <character> .
|
|
|
|
.TP
|
|
|
|
.B "[range] m[ove] line"
|
|
|
|
Move the specified lines after the target line.
|
|
|
|
.TP
|
|
|
|
.B "mk[exrc][!] file"
|
|
|
|
Write the abbreviations, editor options and maps to the specified
|
|
|
|
file.
|
|
|
|
.TP
|
|
|
|
.B "[Nn][ext][!] [file ...]"
|
|
|
|
Edit the next file from the argument list.
|
|
|
|
.TP
|
|
|
|
.B "[line] o[pen] /pattern/ [flags]"
|
|
|
|
Enter open mode.
|
|
|
|
.TP
|
|
|
|
.B "pre[serve]"
|
|
|
|
Save the file in a form that can later be recovered using the
|
|
|
|
.I \&ex
|
|
|
|
.B \-r
|
|
|
|
option.
|
|
|
|
.TP
|
|
|
|
.B "[Pp]rev[ious][!]"
|
|
|
|
Edit the previous file from the argument list.
|
|
|
|
.TP
|
|
|
|
.B "[range] p[rint] [count] [flags]"
|
|
|
|
Display the specified lines.
|
|
|
|
.TP
|
|
|
|
.B "[line] pu[t] [buffer]"
|
|
|
|
Append buffer contents to the current line.
|
|
|
|
.TP
|
|
|
|
.B "q[uit][!]"
|
|
|
|
End the editing session.
|
|
|
|
.TP
|
|
|
|
.B "[line] r[ead][!] [file]"
|
|
|
|
Read a file.
|
|
|
|
.TP
|
|
|
|
.B "rec[over] file"
|
|
|
|
Recover
|
|
|
|
.I file
|
|
|
|
if it was previously saved.
|
|
|
|
.TP
|
|
|
|
.B "res[ize] [+|-]size"
|
|
|
|
.I \&Vi
|
|
|
|
mode only.
|
|
|
|
Grow or shrink the current screen.
|
|
|
|
.TP
|
|
|
|
.B "rew[ind][!]"
|
|
|
|
Rewind the argument list.
|
|
|
|
.TP
|
|
|
|
.B "rta[g][!] tagstring"
|
|
|
|
Edit the file referring the specified tag. (Only in gtagsmode)
|
|
|
|
.TP
|
|
|
|
.B "se[t] [option[=[value]] ...] [nooption ...] [option? ...] [all]"
|
|
|
|
Display or set editor options.
|
|
|
|
.TP
|
|
|
|
.B "sh[ell]"
|
|
|
|
Run a shell program.
|
|
|
|
.TP
|
|
|
|
.B "so[urce] file"
|
|
|
|
Read and execute
|
|
|
|
.I \&ex
|
|
|
|
commands from a file.
|
|
|
|
.TP
|
|
|
|
.B "[range] s[ubstitute] [/pattern/replace/] [options] [count] [flags]"
|
|
|
|
.TP
|
|
|
|
.B "[range] & [options] [count] [flags]"
|
|
|
|
.TP
|
|
|
|
.B "[range] ~ [options] [count] [flags]"
|
|
|
|
Make substitutions.
|
|
|
|
.TP
|
|
|
|
.B "su[spend][!]"
|
|
|
|
.TP
|
|
|
|
.B "st[op][!]"
|
|
|
|
.TP
|
|
|
|
.B <suspend>
|
|
|
|
Suspend the edit session.
|
|
|
|
.TP
|
|
|
|
.B "[Tt]a[g][!] tagstring"
|
|
|
|
Edit the file containing the specified tag.
|
|
|
|
.TP
|
|
|
|
.B "tagn[ext][!]"
|
|
|
|
Edit the file containing the next context for the current tag.
|
|
|
|
.TP
|
|
|
|
.B "tagp[op][!] [file | number]"
|
|
|
|
Pop to the specified tag in the tags stack.
|
|
|
|
.TP
|
|
|
|
.B "tagp[rev][!]"
|
|
|
|
Edit the file containing the previous context for the current tag.
|
|
|
|
.TP
|
|
|
|
.B "unm[ap][!] lhs"
|
|
|
|
Unmap a mapped string.
|
|
|
|
.TP
|
|
|
|
.B "ve[rsion]"
|
|
|
|
Display the version of the
|
|
|
|
.I \&ex/vi
|
|
|
|
editor.
|
|
|
|
.TP
|
|
|
|
.B "[line] vi[sual] [type] [count] [flags]"
|
|
|
|
.I \&Ex
|
|
|
|
mode only.
|
|
|
|
Enter
|
|
|
|
.IR \&vi .
|
|
|
|
.TP
|
|
|
|
.B "[Vi]i[sual][!] [+cmd] [file]"
|
|
|
|
.I \&Vi
|
|
|
|
mode only.
|
|
|
|
Edit a new file.
|
|
|
|
.TP
|
|
|
|
.B "viu[sage] [command]"
|
|
|
|
Display usage for a
|
|
|
|
.I \&vi
|
|
|
|
command.
|
|
|
|
.TP
|
|
|
|
.B "[range] w[rite][!] [>>] [file]"
|
|
|
|
.TP
|
|
|
|
.B "[range] w[rite] [!] [file]"
|
|
|
|
.TP
|
|
|
|
.B "[range] wn[!] [>>] [file]"
|
|
|
|
.TP
|
|
|
|
.B "[range] wq[!] [>>] [file]"
|
|
|
|
Write the file.
|
|
|
|
.TP
|
|
|
|
.B "[range] x[it][!] [file]"
|
|
|
|
Write the file if it has been modified.
|
|
|
|
.TP
|
|
|
|
.B "[range] ya[nk] [buffer] [count]"
|
|
|
|
Copy the specified lines to a buffer.
|
|
|
|
.TP
|
|
|
|
.B "[line] z [type] [count] [flags]"
|
|
|
|
Adjust the window.
|
|
|
|
.SH SET OPTIONS
|
|
|
|
There are a large number of options that may be set (or unset) to
|
|
|
|
change the editor's behavior.
|
|
|
|
This section describes the options, their abbreviations and their
|
|
|
|
default values.
|
|
|
|
.PP
|
|
|
|
In each entry below, the first part of the tag line is the full name
|
|
|
|
of the option, followed by any equivalent abbreviations.
|
|
|
|
The part in square brackets is the default value of the option.
|
|
|
|
Most of the options are boolean, i.e. they are either on or off,
|
|
|
|
and do not have an associated value.
|
|
|
|
.PP
|
|
|
|
Options apply to both
|
|
|
|
.I \&ex
|
|
|
|
and
|
|
|
|
.I \&vi
|
|
|
|
modes, unless otherwise specified.
|
|
|
|
.PP
|
|
|
|
.TP
|
|
|
|
.B "altwerase [off]"
|
|
|
|
.I \&Vi
|
|
|
|
only.
|
|
|
|
Select an alternate word erase algorithm.
|
|
|
|
.TP
|
|
|
|
.B "autoindent, ai [off]"
|
|
|
|
Automatically indent new lines.
|
|
|
|
.TP
|
|
|
|
.B "autoprint, ap [off]"
|
|
|
|
.I \&Ex
|
|
|
|
only.
|
|
|
|
Display the current line automatically.
|
|
|
|
.TP
|
|
|
|
.B "autowrite, aw [off]"
|
|
|
|
Write modified files automatically when changing files.
|
|
|
|
.\" I cannot get a double quote to print between the square brackets
|
|
|
|
.\" to save my life. The ONLY way I've been able to get this to work
|
|
|
|
.\" is with the .tr command.
|
|
|
|
.tr Q"
|
|
|
|
.ds ms backup [QQ]
|
|
|
|
.TP
|
|
|
|
.B "\*(ms"
|
|
|
|
.tr QQ
|
|
|
|
Backup files before they are overwritten.
|
|
|
|
.TP
|
|
|
|
.B "beautify, bf [off]"
|
|
|
|
Discard control characters.
|
|
|
|
.TP
|
|
|
|
.B "cdpath [environment variable CDPATH, or current directory]"
|
|
|
|
The directory paths used as path prefixes for the
|
|
|
|
.B cd
|
|
|
|
command.
|
|
|
|
.TP
|
|
|
|
.B "cedit [no default]"
|
|
|
|
Set the character to edit the colon command-line history.
|
|
|
|
.TP
|
|
|
|
.B "columns, co [80]"
|
|
|
|
Set the number of columns in the screen.
|
|
|
|
.TP
|
|
|
|
.B "comment [off]"
|
|
|
|
.I \&Vi
|
|
|
|
only.
|
|
|
|
Skip leading comments in shell, C and C++ language files.
|
|
|
|
.TP
|
|
|
|
.B "directory, dir [environment variable TMPDIR, or /tmp]"
|
|
|
|
The directory where temporary files are created.
|
|
|
|
.TP
|
|
|
|
.B "edcompatible, ed [off]"
|
|
|
|
Remember the values of the ``c'' and ``g'' suffices to the
|
|
|
|
.B substitute
|
|
|
|
commands, instead of initializing them as unset for each new
|
|
|
|
command.
|
|
|
|
.TP
|
|
|
|
.B "errorbells, eb [off]"
|
|
|
|
.I \&Ex
|
|
|
|
only.
|
|
|
|
Announce error messages with a bell.
|
|
|
|
.TP
|
|
|
|
.B "expandtab, et [off]"
|
|
|
|
Prevent the use of
|
|
|
|
.I <tab>
|
|
|
|
characters in leading whitespace when shifting text, autoindenting,
|
|
|
|
indenting with
|
|
|
|
.BR "<control-T>" ,
|
|
|
|
or outdenting with
|
|
|
|
.BR "<control-D>" .
|
|
|
|
.TP
|
|
|
|
.B "exrc, ex [off]"
|
|
|
|
Read the startup files in the local directory.
|
|
|
|
.TP
|
|
|
|
.B "extended [off]"
|
|
|
|
Regular expressions are extended (i.e.
|
|
|
|
.IR egrep (1)\-\c
|
|
|
|
style) expressions.
|
|
|
|
.TP
|
|
|
|
.B "filec [no default]"
|
|
|
|
Set the character to perform file path completion on the colon
|
|
|
|
command line.
|
|
|
|
.TP
|
|
|
|
.B "flash [on]"
|
|
|
|
Flash the screen instead of beeping the keyboard on error.
|
|
|
|
.TP
|
|
|
|
.B "gtagsmode, gt [off]"
|
|
|
|
Use GTAGS and GRTAGS instead of tags.
|
|
|
|
.TP
|
|
|
|
.B "hardtabs, ht [8]"
|
|
|
|
Set the spacing between hardware tab settings.
|
|
|
|
.TP
|
|
|
|
.B "iclower [off]"
|
|
|
|
Makes all Regular Expressions case-insensitive,
|
|
|
|
as long as an upper-case letter does not appear in the search string.
|
|
|
|
.TP
|
|
|
|
.B "ignorecase, ic [off]"
|
|
|
|
Ignore case differences in regular expressions.
|
|
|
|
.TP
|
|
|
|
.B "keytime [6]"
|
|
|
|
The 10th's of a second
|
|
|
|
.I ex/vi
|
|
|
|
waits for a subsequent key to complete a key mapping.
|
|
|
|
.TP
|
|
|
|
.B "leftright [off]"
|
|
|
|
.I \&Vi
|
|
|
|
only.
|
|
|
|
Do left-right scrolling.
|
|
|
|
.TP
|
|
|
|
.B "lines, li [24]"
|
|
|
|
.I \&Vi
|
|
|
|
only.
|
|
|
|
Set the number of lines in the screen.
|
|
|
|
.TP
|
|
|
|
.B "lisp [off]"
|
|
|
|
.I \&Vi
|
|
|
|
only.
|
|
|
|
Modify various search commands and options to work with Lisp.
|
|
|
|
.I "This option is not yet implemented."
|
|
|
|
.TP
|
|
|
|
.B "list [off]"
|
|
|
|
Display lines in an unambiguous fashion.
|
|
|
|
.TP
|
|
|
|
.B "lock [on]"
|
|
|
|
Attempt to get an exclusive lock on any file being edited,
|
|
|
|
read or written.
|
|
|
|
.TP
|
|
|
|
.B "magic [on]"
|
|
|
|
Treat certain characters specially in regular expressions.
|
|
|
|
.TP
|
|
|
|
.B "matchchars [[]{}()<>]"
|
|
|
|
Character pairs looked for by the % command.
|
|
|
|
.TP
|
|
|
|
.B "matchtime [7]"
|
|
|
|
.I \&Vi
|
|
|
|
only.
|
|
|
|
The 10th's of a second
|
|
|
|
.I ex/vi
|
|
|
|
pauses on the matching character when the
|
|
|
|
.B showmatch
|
|
|
|
option is set.
|
|
|
|
.TP
|
|
|
|
.B "mesg [on]"
|
|
|
|
Permit messages from other users.
|
|
|
|
.TP
|
|
|
|
.B "modelines, modeline [off]"
|
|
|
|
Read the first and last few lines of each file for
|
|
|
|
.I ex
|
|
|
|
commands.
|
|
|
|
.I "This option will never be implemented."
|
|
|
|
.\" I cannot get a double quote to print between the square brackets
|
|
|
|
.\" to save my life. The ONLY way I've been able to get this to work
|
|
|
|
.\" is with the .tr command.
|
|
|
|
.tr Q"
|
|
|
|
.ds ms noprint [QQ]
|
|
|
|
.TP
|
|
|
|
.B "\*(ms"
|
|
|
|
.tr QQ
|
|
|
|
Characters that are never handled as printable characters.
|
|
|
|
.TP
|
|
|
|
.B "number, nu [off]"
|
|
|
|
Precede each line displayed with its current line number.
|
|
|
|
.TP
|
|
|
|
.B "octal [off]"
|
|
|
|
Display unknown characters as octal numbers, instead of the default
|
|
|
|
hexadecimal.
|
|
|
|
.TP
|
|
|
|
.B "open [on]"
|
|
|
|
.I \&Ex
|
|
|
|
only.
|
|
|
|
If this option is not set, the
|
|
|
|
.B open
|
|
|
|
and
|
|
|
|
.B visual
|
|
|
|
commands are disallowed.
|
|
|
|
.TP
|
|
|
|
.B "optimize, opt [on]"
|
|
|
|
.I \&Vi
|
|
|
|
only.
|
|
|
|
Optimize text throughput to dumb terminals.
|
|
|
|
.I "This option is not yet implemented."
|
|
|
|
.TP
|
|
|
|
.B "paragraphs, para [IPLPPPQPP LIpplpipbp]"
|
|
|
|
.I \&Vi
|
|
|
|
only.
|
|
|
|
Define additional paragraph boundaries for the
|
|
|
|
.B \&{
|
|
|
|
and
|
|
|
|
.B \&}
|
|
|
|
commands.
|
|
|
|
.TP
|
|
|
|
.B "path []"
|
|
|
|
Define additional directories to search for files being edited.
|
|
|
|
.\" I cannot get a double quote to print between the square brackets
|
|
|
|
.\" to save my life. The ONLY way I've been able to get this to work
|
|
|
|
.\" is with the .tr command.
|
|
|
|
.tr Q"
|
|
|
|
.ds ms print [QQ]
|
|
|
|
.TP
|
|
|
|
.B "\*(ms"
|
|
|
|
.tr QQ
|
|
|
|
Characters that are always handled as printable characters.
|
|
|
|
.TP
|
|
|
|
.B "prompt [on]"
|
|
|
|
.I \&Ex
|
|
|
|
only.
|
|
|
|
Display a command prompt.
|
|
|
|
.TP
|
|
|
|
.B "readonly, ro [off]"
|
|
|
|
Mark the file and session as read-only.
|
|
|
|
.TP
|
|
|
|
.B "recdir [/var/tmp/vi.recover]"
|
|
|
|
The directory where recovery files are stored.
|
|
|
|
.TP
|
|
|
|
.B "redraw, re [off]"
|
|
|
|
.I \&Vi
|
|
|
|
only.
|
|
|
|
Simulate an intelligent terminal on a dumb one.
|
|
|
|
.I "This option is not yet implemented."
|
|
|
|
.TP
|
|
|
|
.B "remap [on]"
|
|
|
|
Remap keys until resolved.
|
|
|
|
.TP
|
|
|
|
.B "report [5]"
|
|
|
|
Set the number of lines about which the editor reports changes
|
|
|
|
or yanks.
|
|
|
|
.TP
|
|
|
|
.B "ruler [off]"
|
|
|
|
.I \&Vi
|
|
|
|
only.
|
|
|
|
Display a row/column ruler on the colon command line.
|
|
|
|
.TP
|
|
|
|
.B "scroll, scr [window / 2]"
|
|
|
|
Set the number of lines scrolled.
|
|
|
|
.TP
|
|
|
|
.B "searchincr [off]"
|
|
|
|
Makes the
|
|
|
|
.B \&/
|
|
|
|
and
|
|
|
|
.B \&?
|
|
|
|
commands incremental.
|
|
|
|
.TP
|
|
|
|
.B "sections, sect [NHSHH HUnhsh]"
|
|
|
|
.I \&Vi
|
|
|
|
only.
|
|
|
|
Define additional section boundaries for the
|
|
|
|
.B \&[[
|
|
|
|
and
|
|
|
|
.B \&]]
|
|
|
|
commands.
|
|
|
|
.TP
|
|
|
|
.B "secure [off]"
|
|
|
|
Turns off all access to external programs.
|
|
|
|
.TP
|
|
|
|
.B "shell, sh [environment variable SHELL, or /bin/sh]"
|
|
|
|
Select the shell used by the editor.
|
|
|
|
.\" I cannot get a double quote to print between the square brackets
|
|
|
|
.\" to save my life. The ONLY way I've been able to get this to work
|
|
|
|
.\" is with the .tr command.
|
|
|
|
.tr Q"
|
|
|
|
.ds ms shellmeta [~{[*?$`'Q\e]
|
|
|
|
.TP
|
|
|
|
.B "\*(ms"
|
|
|
|
.tr QQ
|
|
|
|
Set the meta characters checked to determine if file name expansion
|
|
|
|
is necessary.
|
|
|
|
.TP
|
|
|
|
.B "shiftwidth, sw [8]"
|
|
|
|
Set the autoindent and shift command indentation width.
|
|
|
|
.TP
|
|
|
|
.B "showmatch, sm [off]"
|
|
|
|
.I \&Vi
|
|
|
|
only.
|
|
|
|
Note matching ``{'' and ``('' for ``}'' and ``)'' characters.
|
|
|
|
.TP
|
|
|
|
.B "showmode, smd [off]"
|
|
|
|
.I \&Vi
|
|
|
|
only.
|
|
|
|
Display the current editor mode and a ``modified'' flag.
|
|
|
|
.TP
|
|
|
|
.B "sidescroll [16]"
|
|
|
|
.I \&Vi
|
|
|
|
only.
|
|
|
|
Set the amount a left-right scroll will shift.
|
|
|
|
.TP
|
|
|
|
.B "slowopen, slow [off]"
|
|
|
|
Delay display updating during text input.
|
|
|
|
.I "This option is not yet implemented."
|
|
|
|
.TP
|
|
|
|
.B "sourceany [off]"
|
|
|
|
Read startup files not owned by the current user.
|
|
|
|
.I "This option will never be implemented."
|
|
|
|
.TP
|
|
|
|
.B "tabstop, ts [8]"
|
|
|
|
This option sets tab widths for the editor display.
|
|
|
|
.TP
|
|
|
|
.B "taglength, tl [0]"
|
|
|
|
Set the number of significant characters in tag names.
|
|
|
|
.TP
|
|
|
|
.B "tags, tag [tags /var/db/libc.tags /sys/kern/tags]"
|
|
|
|
Set the list of tags files.
|
|
|
|
.TP
|
|
|
|
.B "term, ttytype, tty [environment variable TERM]"
|
|
|
|
Set the terminal type.
|
|
|
|
.TP
|
|
|
|
.B "terse [off]"
|
|
|
|
This option has historically made editor messages less verbose.
|
|
|
|
It has no effect in this implementation.
|
|
|
|
.TP
|
|
|
|
.B "tildeop [off]"
|
|
|
|
Modify the
|
|
|
|
.B \&~
|
|
|
|
command to take an associated motion.
|
|
|
|
.TP
|
|
|
|
.B "timeout, to [on]"
|
|
|
|
Time out on keys which may be mapped.
|
|
|
|
.TP
|
|
|
|
.B "ttywerase [off]"
|
|
|
|
.I \&Vi
|
|
|
|
only.
|
|
|
|
Select an alternate erase algorithm.
|
|
|
|
.TP
|
|
|
|
.B "verbose [off]"
|
|
|
|
.I \&Vi
|
|
|
|
only.
|
|
|
|
Display an error message for every error.
|
|
|
|
.TP
|
|
|
|
.B "w300 [no default]"
|
|
|
|
.I \&Vi
|
|
|
|
only.
|
|
|
|
Set the window size if the baud rate is less than 1200 baud.
|
|
|
|
.TP
|
|
|
|
.B "w1200 [no default]"
|
|
|
|
.I \&Vi
|
|
|
|
only.
|
|
|
|
Set the window size if the baud rate is equal to 1200 baud.
|
|
|
|
.TP
|
|
|
|
.B "w9600 [no default]"
|
|
|
|
.I \&Vi
|
|
|
|
only.
|
|
|
|
Set the window size if the baud rate is greater than 1200 baud.
|
|
|
|
.TP
|
|
|
|
.B "warn [on]"
|
|
|
|
.I \&Ex
|
|
|
|
only.
|
|
|
|
This option causes a warning message to the terminal if the file has
|
|
|
|
been modified, since it was last written, before a
|
|
|
|
.B \&!
|
|
|
|
command.
|
|
|
|
.TP
|
|
|
|
.B "window, w, wi [environment variable LINES]"
|
|
|
|
Set the window size for the screen.
|
|
|
|
.TP
|
|
|
|
.B "windowname [off]"
|
|
|
|
Change the icon/window name to the current file name even if it can't
|
|
|
|
be restored on editor exit.
|
|
|
|
.TP
|
|
|
|
.B "wraplen, wl [0]"
|
|
|
|
.I \&Vi
|
|
|
|
only.
|
|
|
|
Break lines automatically, the specified number of columns from the
|
|
|
|
left-hand margin.
|
|
|
|
If both the
|
|
|
|
.B wraplen
|
|
|
|
and
|
|
|
|
.B wrapmargin
|
|
|
|
edit options are set, the
|
|
|
|
.B wrapmargin
|
|
|
|
value is used.
|
|
|
|
.TP
|
|
|
|
.B "wrapmargin, wm [0]"
|
|
|
|
.I \&Vi
|
|
|
|
only.
|
|
|
|
Break lines automatically, the specified number of columns from the
|
|
|
|
right-hand margin.
|
|
|
|
If both the
|
|
|
|
.B wraplen
|
|
|
|
and
|
|
|
|
.B wrapmargin
|
|
|
|
edit options are set, the
|
|
|
|
.B wrapmargin
|
|
|
|
value is used.
|
|
|
|
.TP
|
|
|
|
.B "wrapscan, ws [on]"
|
|
|
|
Set searches to wrap around the end or beginning of the file.
|
|
|
|
.TP
|
|
|
|
.B "writeany, wa [off]"
|
|
|
|
Turn off file-overwriting checks.
|
|
|
|
.SH "ENVIRONMENT VARIABLES
|
|
|
|
.TP
|
|
|
|
.I COLUMNS
|
|
|
|
The number of columns on the screen.
|
|
|
|
This value overrides any system or terminal specific values.
|
|
|
|
If the
|
|
|
|
.I COLUMNS
|
|
|
|
environmental variable is not set when
|
|
|
|
.I ex/vi
|
|
|
|
runs, or the
|
|
|
|
.B columns
|
|
|
|
option is explicitly reset by the user,
|
|
|
|
.I ex/vi
|
|
|
|
enters the value into the environment.
|
|
|
|
.TP
|
|
|
|
.I EXINIT
|
|
|
|
A list of
|
|
|
|
.I \&ex
|
|
|
|
startup commands, read if the variable
|
|
|
|
.I NEXINIT
|
|
|
|
is not set.
|
|
|
|
.TP
|
|
|
|
.I HOME
|
|
|
|
The user's home directory, used as the initial directory path
|
|
|
|
for the startup ``$\fIHOME\fP/.nexrc'' and ``$\fIHOME\fP/.exrc''
|
|
|
|
files.
|
|
|
|
This value is also used as the default directory for the
|
|
|
|
.I \&vi
|
|
|
|
.B \&cd
|
|
|
|
command.
|
|
|
|
.TP
|
|
|
|
.I LINES
|
|
|
|
The number of rows on the screen.
|
|
|
|
This value overrides any system or terminal specific values.
|
|
|
|
If the
|
|
|
|
.I LINES
|
|
|
|
environmental variable is not set when
|
|
|
|
.I ex/vi
|
|
|
|
runs, or the
|
|
|
|
.B lines
|
|
|
|
option is explicitly reset by the user,
|
|
|
|
.I ex/vi
|
|
|
|
enters the value into the environment.
|
|
|
|
.TP
|
|
|
|
.I NEXINIT
|
|
|
|
A list of
|
|
|
|
.I \&ex
|
|
|
|
startup commands.
|
|
|
|
.TP
|
|
|
|
.I SHELL
|
|
|
|
The user's shell of choice (see also the
|
|
|
|
.B shell
|
|
|
|
option).
|
|
|
|
.TP
|
|
|
|
.I TERM
|
|
|
|
The user's terminal type.
|
|
|
|
The default is the type ``unknown''.
|
|
|
|
If the
|
|
|
|
.I TERM
|
|
|
|
environmental variable is not set when
|
|
|
|
.I ex/vi
|
|
|
|
runs, or the
|
|
|
|
.B term
|
|
|
|
option is explicitly reset by the user,
|
|
|
|
.I ex/vi
|
|
|
|
enters the value into the environment.
|
|
|
|
.TP
|
|
|
|
.I TMPDIR
|
|
|
|
The location used to stored temporary files (see also the
|
|
|
|
.B directory
|
|
|
|
edit option).
|
|
|
|
.SH ASYNCHRONOUS EVENTS
|
|
|
|
.TP
|
|
|
|
SIGALRM
|
|
|
|
.I \&Vi/ex
|
|
|
|
uses this signal for periodic backups of file modifications and to
|
|
|
|
display ``busy'' messages when operations are likely to take a long time.
|
|
|
|
.TP
|
|
|
|
SIGHUP
|
|
|
|
.TP
|
|
|
|
SIGTERM
|
|
|
|
If the current buffer has changed since it was last written in its
|
|
|
|
entirety, the editor attempts to save the modified file so it can
|
|
|
|
be later recovered.
|
|
|
|
See the
|
|
|
|
.I \&vi/ex
|
|
|
|
Reference manual section entitled ``Recovery'' for more information.
|
|
|
|
.TP
|
|
|
|
SIGINT
|
|
|
|
When an interrupt occurs,
|
|
|
|
the current operation is halted,
|
|
|
|
and the editor returns to the command level.
|
|
|
|
If interrupted during text input,
|
|
|
|
the text already input is resolved into the file as if the text
|
|
|
|
input had been normally terminated.
|
|
|
|
.TP
|
|
|
|
SIGWINCH
|
|
|
|
The screen is resized.
|
|
|
|
See the
|
|
|
|
.I \&vi/ex
|
|
|
|
Reference manual section entitled ``Sizing the Screen'' for more information.
|
|
|
|
.TP
|
|
|
|
SIGCONT
|
|
|
|
.TP
|
|
|
|
SIGQUIT
|
|
|
|
.TP
|
|
|
|
SIGTSTP
|
|
|
|
.I \&Vi/ex
|
|
|
|
ignores these signals.
|
|
|
|
.SH FILES
|
|
|
|
.TP
|
|
|
|
/bin/sh
|
|
|
|
The default user shell.
|
|
|
|
.TP
|
|
|
|
/etc/vi.exrc
|
|
|
|
System-wide vi startup file.
|
|
|
|
.TP
|
|
|
|
/tmp
|
|
|
|
Temporary file directory.
|
|
|
|
.TP
|
|
|
|
/var/tmp/vi.recover
|
|
|
|
The default recovery file directory.
|
|
|
|
.TP
|
|
|
|
$HOME/.nexrc
|
|
|
|
1st choice for user's home directory startup file.
|
|
|
|
.TP
|
|
|
|
$HOME/.exrc
|
|
|
|
2nd choice for user's home directory startup file.
|
|
|
|
.TP
|
|
|
|
\&.nexrc
|
|
|
|
1st choice for local directory startup file.
|
|
|
|
.TP
|
|
|
|
\&.exrc
|
|
|
|
2nd choice for local directory startup file.
|
|
|
|
.SH SEE ALSO
|
|
|
|
.IR ctags (1),
|
|
|
|
.IR more (1),
|
|
|
|
.IR curses (3),
|
|
|
|
.IR dbopen (3)
|
|
|
|
.sp
|
|
|
|
The ``Vi Quick Reference'' card.
|
|
|
|
.sp
|
|
|
|
``An Introduction to Display Editing with Vi'', found in the
|
|
|
|
``UNIX User's Manual Supplementary Documents''
|
|
|
|
section of both the 4.3BSD and 4.4BSD manual sets.
|
|
|
|
This document is the closest thing available to an introduction to the
|
|
|
|
.I \&vi
|
|
|
|
screen editor.
|
|
|
|
.sp
|
|
|
|
``Ex Reference Manual (Version 3.7)'',
|
|
|
|
found in the
|
|
|
|
``UNIX User's Manual Supplementary Documents''
|
|
|
|
section of both the 4.3BSD and 4.4BSD manual sets.
|
|
|
|
This document is the final reference for the
|
|
|
|
.I \&ex
|
|
|
|
editor, as distributed in most historic 4BSD and System V systems.
|
|
|
|
.sp
|
|
|
|
``Edit: A tutorial'',
|
|
|
|
found in the
|
|
|
|
``UNIX User's Manual Supplementary Documents''
|
|
|
|
section of the 4.3BSD manual set.
|
|
|
|
This document is an introduction to a simple version of the
|
|
|
|
.I \&ex
|
|
|
|
screen editor.
|
|
|
|
.sp
|
|
|
|
``Ex/Vi Reference Manual'',
|
|
|
|
found in the
|
|
|
|
``UNIX User's Manual Supplementary Documents''
|
|
|
|
section of the 4.4BSD manual set.
|
|
|
|
This document is the final reference for the
|
|
|
|
.I \&nex/nvi
|
|
|
|
text editors, as distributed in 4.4BSD and 4.4BSD-Lite.
|
|
|
|
.PP
|
|
|
|
.I Roff
|
|
|
|
source for all of these documents is distributed with
|
|
|
|
.I nex/nvi
|
|
|
|
in the
|
|
|
|
.I nvi/USD.doc
|
|
|
|
directory of the
|
|
|
|
.I nex/nvi
|
|
|
|
source code.
|
|
|
|
.sp
|
|
|
|
The files ``autowrite'', ``input'', ``quoting'' and ``structures''
|
|
|
|
found in the
|
|
|
|
.I nvi/docs/internals
|
|
|
|
directory of the
|
|
|
|
.I nex/nvi
|
|
|
|
source code.
|
|
|
|
.SH HISTORY
|
|
|
|
The
|
|
|
|
.I nex/nvi
|
|
|
|
replacements for the
|
|
|
|
.I ex/vi
|
|
|
|
editor first appeared in 4.4BSD.
|
|
|
|
.SH STANDARDS
|
|
|
|
.I \&Nex/nvi
|
|
|
|
is close to IEEE Std1003.2 (``POSIX'').
|
|
|
|
That document differs from historical
|
|
|
|
.I ex/vi
|
|
|
|
practice in several places; there are changes to be made on both sides.
|