Hi,
>From vi(1):
[range] s[ubstitute] [/pattern/replace/] [options] [count] [flags]
[range] & [options] [count] [flags]
[range] ~ [options] [count] [flags]
Make substitutions. The replace field may contain any of the
following sequences:
(...snip...)
There are a couple of issues here.
First, the command is "s" and only "s"; trying "substitute" results in
an error.
Additionally &, ~, and the options field remain unexplained.
This diff tries to makes things better. ok?
Index: docs/USD.doc/vi.man/vi.1
===================================================================
RCS file: /cvs/src/usr.bin/vi/docs/USD.doc/vi.man/vi.1,v
retrieving revision 1.67
diff -u -p -r1.67 vi.1
--- docs/USD.doc/vi.man/vi.1 15 Jun 2017 06:44:47 -0000 1.67
+++ docs/USD.doc/vi.man/vi.1 15 Jun 2017 08:08:49 -0000
@@ -356,7 +356,7 @@ matches the end of the word.
.It
.Sq ~
matches the replacement part of the last
-.Cm substitute
+.Cm s
command.
.El
.Sh BUFFERS
@@ -2019,7 +2019,7 @@ commands from a file.
.Pp
.It Xo
.Op Ar range
-.Cm s Ns Op Cm ubstitute
+.Cm s
.Sm off
.Op / Ar pattern No / Ar replace No /
.Sm on
@@ -2041,7 +2041,27 @@ commands from a file.
.Op Ar count
.Op Ar flags
.Xc
-Make substitutions.
+Substitute the regular expression
+.Ar pattern
+with
+.Ar replace .
+When invoked as
+.Cm & ,
+or if
+.Bq Ns / Ns Ar pattern Ns / Ns Ar replace Ns /
+is omitted,
+.Ar pattern
+and
+.Ar replace
+from the most recent
+.Cm s
+command are used.
+.Cm ~
+behaves like
+.Cm & ,
+except the pattern used is the most recent regular expression used by any
+command.
+.Pp
The
.Ar replace
field may contain any of the following sequences:
@@ -2051,13 +2071,13 @@ The text matched by
.Ar pattern .
.It Sq \(a~
The replacement part of the previous
-.Cm substitute
+.Cm s
command.
.It Sq %
If this is the entire
.Ar replace
pattern, the replacement part of the previous
-.Cm substitute
+.Cm s
command.
.It Sq \e#
Where
@@ -2082,6 +2102,18 @@ to be converted to uppercase.
Causes the next character to be converted to uppercase.
.El
.Pp
+The
+.Ar options
+field may contain any of the following characters:
+.Bl -tag -width Ds
+.It Sq c
+Prompt for confirmation before each replacement is done.
+.It Sq g
+Replace all instances of
+.Ar pattern
+in a line, not just the first.
+.El
+.Pp
.It Xo
.Cm su Ns Op Cm spend Ns
.Op Cm !\&
@@ -2291,7 +2323,9 @@ Remember the values of the
and
.Sq g
suffixes to the
-.Cm substitute
+.Cm s , &
+and
+.Cm ~
commands, instead of initializing them as unset for each new command.
.It Cm escapetime Bq 1
The tenths of a second