diff --git a/runtime/doc/vim.man b/runtime/doc/vim.man
index 5b9b83c..9390caa 100644
--- a/runtime/doc/vim.man
+++ b/runtime/doc/vim.man
@@ -1,4 +1,4 @@
-VIM(1)                                                                  VIM(1)
+VIM(1)                      General Commands Manual                     VIM(1)
 
 
 
@@ -21,13 +21,13 @@
        to edit all kinds of plain text.  It is especially useful  for  editing
        programs.
 
-       There  are a lot of enhancements above Vi: multi level undo, multi win-
+       There  are a lot of enhancements above Vi: multi level undo, multi win‐
        dows and buffers, syntax highlighting, command line  editing,  filename
        completion,   on-line   help,   visual  selection,  etc..   See  ":help
        vi_diff.txt" for a summary of the differences between Vim and Vi.
 
        While running Vim a lot of help can be obtained from the  on-line  help
-       system,  with the ":help" command.  See the ON-LINE HELP section below.
+       system, with the ":help" command.  See the ON-LINE HELP section below.
 
        Most often Vim is started to edit a single file with the command
 
@@ -38,44 +38,44 @@
             vim [options] [filelist]
 
        If the filelist is missing, the editor will start with an empty buffer.
-       Otherwise  exactly  one out of the following four may be used to choose
+       Otherwise exactly one out of the following four may be used  to  choose
        one or more files to be edited.
 
-       file ..     A list of filenames.  The first one  will  be  the  current
-                   file  and  read  into the buffer.  The cursor will be posi-
+       file ..     A  list  of  filenames.   The first one will be the current
+                   file and read into the buffer.  The cursor  will  be  posi‐
                    tioned on the first line of the buffer.  You can get to the
-                   other  files with the ":next" command.  To edit a file that
+                   other files with the ":next" command.  To edit a file  that
                    starts with a dash, precede the filelist with "--".
 
-       -           The file to edit is read from  stdin.   Commands  are  read
+       -           The  file  to  edit  is read from stdin.  Commands are read
                    from stderr, which should be a tty.
 
        -t {tag}    The file to edit and the initial cursor position depends on
-                   a "tag", a sort of goto label.  {tag} is looked up  in  the
+                   a  "tag",  a sort of goto label.  {tag} is looked up in the
                    tags file, the associated file becomes the current file and
-                   the associated command is executed.  Mostly  this  is  used
-                   for  C  programs,  in  which case {tag} could be a function
+                   the  associated  command  is executed.  Mostly this is used
+                   for C programs, in which case {tag}  could  be  a  function
                    name.  The effect is that the file containing that function
-                   becomes  the  current  file and the cursor is positioned on
+                   becomes the current file and the cursor  is  positioned  on
                    the start of the function.  See ":help tag-commands".
 
        -q [errorfile]
-                   Start in quickFix mode.  The file [errorfile] is  read  and
-                   the  first  error is displayed.  If [errorfile] is omitted,
+                   Start  in  quickFix mode.  The file [errorfile] is read and
+                   the first error is displayed.  If [errorfile]  is  omitted,
                    the  filename  is  obtained  from  the  'errorfile'  option
-                   (defaults  to  "AztecC.Err"  for the Amiga, "errors.err" on
-                   other systems).  Further errors can be jumped to  with  the
+                   (defaults to "AztecC.Err" for the  Amiga,  "errors.err"  on
+                   other  systems).   Further errors can be jumped to with the
                    ":cn" command.  See ":help quickfix".
 
-       Vim behaves differently, depending on the name of the command (the exe-
+       Vim behaves differently, depending on the name of the command (the exe‐
        cutable may still be the same file).
 
        vim       The "normal" way, everything is default.
 
-       ex        Start in Ex mode.  Go to Normal mode with the ":vi"  command.
+       ex        Start  in Ex mode.  Go to Normal mode with the ":vi" command.
                  Can also be done with the "-e" argument.
 
-       view      Start  in read-only mode.  You will be protected from writing
+       view      Start in read-only mode.  You will be protected from  writing
                  the files.  Can also be done with the "-R" argument.
 
        gvim gview
@@ -87,102 +87,102 @@
                  be done with the "-y" argument.
 
        rvim rview rgvim rgview
-                 Like the above, but with restrictions.  It will not be possi-
-                 ble  to  start  shell  commands, or suspend Vim.  Can also be
+                 Like the above, but with restrictions.  It will not be possi‐
+                 ble to start shell commands, or suspend  Vim.   Can  also  be
                  done with the "-Z" argument.
 
 OPTIONS
-       The options may be given in  any  order,  before  or  after  filenames.
+       The  options  may  be  given  in  any order, before or after filenames.
        Options without an argument can be combined after a single dash.
 
-       +[num]      For  the  first  file the cursor will be positioned on line
-                   "num".  If "num" is missing, the cursor will be  positioned
+       +[num]      For the first file the cursor will be  positioned  on  line
+                   "num".   If "num" is missing, the cursor will be positioned
                    on the last line.
 
-       +/{pat}     For  the  first  file  the cursor will be positioned on the
-                   first occurrence of {pat}.  See ":help search-pattern"  for
-                   the available search patterns.
+       +/{pat}     For the first file the cursor will  be  positioned  in  the
+                   line  with  the  first  occurrence  of  {pat}.   See ":help
+                   search-pattern" for the available search patterns.
 
        +{command}
 
        -c {command}
-                   {command}  will  be  executed after the first file has been
-                   read.  {command} is interpreted as an Ex command.   If  the
-                   {command}  contains  spaces  it  must be enclosed in double
-                   quotes (this depends on the shell that is used).   Example:
+                   {command} will be executed after the first  file  has  been
+                   read.   {command}  is interpreted as an Ex command.  If the
+                   {command} contains spaces it must  be  enclosed  in  double
+                   quotes  (this depends on the shell that is used).  Example:
                    Vim "+set si" main.c
                    Note: You can use up to 10 "+" or "-c" commands.
 
-       -S {file}   {file}  will be sourced after the first file has been read.
-                   This is equivalent to -c "source  {file}".   {file}  cannot
+       -S {file}   {file} will be sourced after the first file has been  read.
+                   This  is  equivalent  to -c "source {file}".  {file} cannot
                    start with '-'.  If {file} is omitted "Session.vim" is used
                    (only works when -S is the last argument).
 
        --cmd {command}
-                   Like using "-c", but the command is  executed  just  before
-                   processing  any  vimrc file.  You can use up to 10 of these
+                   Like  using  "-c",  but the command is executed just before
+                   processing any vimrc file.  You can use up to 10  of  these
                    commands, independently from "-c" commands.
 
-       -A          If Vim has been compiled with ARABIC  support  for  editing
-                   right-to-left  oriented  files and Arabic keyboard mapping,
-                   this option starts Vim in Arabic  mode,  i.e.  'arabic'  is
+       -A          If  Vim  has  been compiled with ARABIC support for editing
+                   right-to-left oriented files and Arabic  keyboard  mapping,
+                   this  option  starts  Vim  in Arabic mode, i.e. 'arabic' is
                    set.  Otherwise an error message is given and Vim aborts.
 
-       -b          Binary  mode.  A few options will be set that makes it pos-
+       -b          Binary mode.  A few options will be set that makes it  pos‐
                    sible to edit a binary or executable file.
 
-       -C          Compatible.  Set the 'compatible' option.  This  will  make
-                   Vim  behave  mostly  like  Vi,  even  though  a .vimrc file
+       -C          Compatible.   Set  the 'compatible' option.  This will make
+                   Vim behave mostly  like  Vi,  even  though  a  .vimrc  file
                    exists.
 
-       -d          Start in diff mode.  There should be  two,  three  or  four
-                   file  name arguments.  Vim will open all the files and show
+       -d          Start  in  diff  mode.   There should be two, three or four
+                   file name arguments.  Vim will open all the files and  show
                    differences between them.  Works like vimdiff(1).
 
-       -d {device} Open {device} for use as a terminal.  Only  on  the  Amiga.
+       -d {device} Open  {device}  for  use as a terminal.  Only on the Amiga.
                    Example: "-d con:20/30/600/150".
 
-       -D          Debugging.   Go  to debugging mode when executing the first
+       -D          Debugging.  Go to debugging mode when executing  the  first
                    command from a script.
 
-       -e          Start Vim in Ex mode, just like the executable  was  called
+       -e          Start  Vim  in Ex mode, just like the executable was called
                    "ex".
 
        -E          Start Vim in improved Ex mode, just like the executable was
                    called "exim".
 
-       -f          Foreground.  For the GUI version, Vim  will  not  fork  and
+       -f          Foreground.   For  the  GUI  version, Vim will not fork and
                    detach from the shell it was started in.  On the Amiga, Vim
-                   is not restarted to open a new window.  This option  should
-                   be  used  when  Vim is executed by a program that will wait
-                   for the edit session to finish (e.g. mail).  On  the  Amiga
+                   is  not restarted to open a new window.  This option should
+                   be used when Vim is executed by a program  that  will  wait
+                   for  the  edit session to finish (e.g. mail).  On the Amiga
                    the ":sh" and ":!" commands will not work.
 
-       --nofork    Foreground.   For  the  GUI  version, Vim will not fork and
+       --nofork    Foreground.  For the GUI version, Vim  will  not  fork  and
                    detach from the shell it was started in.
 
-       -F          If Vim has been compiled with  FKMAP  support  for  editing
-                   right-to-left  oriented  files  and Farsi keyboard mapping,
-                   this option starts Vim in  Farsi  mode,  i.e.  'fkmap'  and
-                   'rightleft'  are  set.  Otherwise an error message is given
-                   and Vim aborts.
-
-       -g          If Vim has been compiled  with  GUI  support,  this  option
-                   enables  the  GUI.   If  no GUI support was compiled in, an
-                   error message is given and Vim aborts.
-
-       -h          Give a bit of help about the  command  line  arguments  and
-                   options.  After this Vim exits.
-
-       -H          If Vim has been compiled with RIGHTLEFT support for editing
-                   right-to-left oriented files and Hebrew  keyboard  mapping,
-                   this  option  starts  Vim  in Hebrew mode, i.e. 'hkmap' and
+       -F          If  Vim  has  been  compiled with FKMAP support for editing
+                   right-to-left oriented files and  Farsi  keyboard  mapping,
+                   this  option  starts  Vim  in  Farsi mode, i.e. 'fkmap' and
                    'rightleft' are set.  Otherwise an error message  is  given
                    and Vim aborts.
 
+       -g          If  Vim  has  been  compiled  with GUI support, this option
+                   enables the GUI.  If no GUI support  was  compiled  in,  an
+                   error message is given and Vim aborts.
+
+       -h          Give  a  bit  of  help about the command line arguments and
+                   options.  After this Vim exits.
+
+       -H          If Vim has been compiled with RIGHTLEFT support for editing
+                   right-to-left  oriented  files and Hebrew keyboard mapping,
+                   this option starts Vim in Hebrew  mode,  i.e.  'hkmap'  and
+                   'rightleft'  are  set.  Otherwise an error message is given
+                   and Vim aborts.
+
        -i {viminfo}
-                   When  using  the  viminfo file is enabled, this option sets
-                   the filename to use, instead of the  default  "~/.viminfo".
+                   When using the viminfo file is enabled,  this  option  sets
+                   the  filename  to use, instead of the default "~/.viminfo".
                    This can also be used to skip the use of the .viminfo file,
                    by giving the name "NONE".
 
@@ -190,92 +190,92 @@
 
        -l          Lisp mode.  Sets the 'lisp' and 'showmatch' options on.
 
-       -m          Modifying files is disabled.  Resets  the  'write'  option.
-                   You  can still modify the buffer, but writing a file is not
+       -m          Modifying  files  is  disabled.  Resets the 'write' option.
+                   You can still modify the buffer, but writing a file is  not
                    possible.
 
-       -M          Modifications not allowed.  The  'modifiable'  and  'write'
-                   options  will be unset, so that changes are not allowed and
-                   files can not be written.  Note that these options  can  be
+       -M          Modifications  not  allowed.   The 'modifiable' and 'write'
+                   options will be unset, so that changes are not allowed  and
+                   files  can  not be written.  Note that these options can be
                    set to enable making modifications.
 
-       -N          No-compatible  mode.   Reset the 'compatible' option.  This
-                   will make Vim behave a bit better, but less Vi  compatible,
+       -N          No-compatible mode.  Reset the 'compatible'  option.   This
+                   will  make Vim behave a bit better, but less Vi compatible,
                    even though a .vimrc file does not exist.
 
-       -n          No  swap file will be used.  Recovery after a crash will be
-                   impossible.  Handy if you want to edit a  file  on  a  very
-                   slow  medium  (e.g.  floppy).   Can also be done with ":set
+       -n          No swap file will be used.  Recovery after a crash will  be
+                   impossible.   Handy  if  you  want to edit a file on a very
+                   slow medium (e.g. floppy).  Can also  be  done  with  ":set
                    uc=0".  Can be undone with ":set uc=200".
 
-       -nb         Become an editor server for NetBeans.   See  the  docs  for
+       -nb         Become  an  editor  server  for NetBeans.  See the docs for
                    details.
 
        -o[N]       Open N windows stacked.  When N is omitted, open one window
                    for each file.
 
-       -O[N]       Open N windows side by side.  When N is omitted,  open  one
+       -O[N]       Open  N  windows side by side.  When N is omitted, open one
                    window for each file.
 
        -p[N]       Open N tab pages.  When N is omitted, open one tab page for
                    each file.
 
-       -R          Read-only mode.  The 'readonly' option will  be  set.   You
-                   can still edit the buffer, but will be prevented from acci-
-                   dently overwriting a file.  If you do want to  overwrite  a
-                   file,  add  an  exclamation  mark  to the Ex command, as in
-                   ":w!".  The -R option  also  implies  the  -n  option  (see
-                   below).   The  'readonly'  option  can  be reset with ":set
+       -R          Read-only  mode.   The  'readonly' option will be set.  You
+                   can still edit the buffer, but will be prevented from acci‐
+                   dently  overwriting  a file.  If you do want to overwrite a
+                   file, add an exclamation mark to  the  Ex  command,  as  in
+                   ":w!".   The  -R  option  also  implies  the -n option (see
+                   below).  The 'readonly' option  can  be  reset  with  ":set
                    noro".  See ":help 'readonly'".
 
-       -r          List swap files, with  information  about  using  them  for
+       -r          List  swap  files,  with  information  about using them for
                    recovery.
 
-       -r {file}   Recovery  mode.  The swap file is used to recover a crashed
-                   editing session.  The swap file is a  file  with  the  same
+       -r {file}   Recovery mode.  The swap file is used to recover a  crashed
+                   editing  session.   The  swap  file is a file with the same
                    filename as the text file with ".swp" appended.  See ":help
                    recovery".
 
-       -s          Silent mode.  Only when started as "Ex" or  when  the  "-e"
+       -s          Silent  mode.   Only  when started as "Ex" or when the "-e"
                    option was given before the "-s" option.
 
        -s {scriptin}
-                   The  script file {scriptin} is read.  The characters in the
-                   file are interpreted as if you had typed  them.   The  same
+                   The script file {scriptin} is read.  The characters in  the
+                   file  are  interpreted  as if you had typed them.  The same
                    can be done with the command ":source! {scriptin}".  If the
                    end of the file is reached before the editor exits, further
                    characters are read from the keyboard.
 
        -T {terminal}
-                   Tells  Vim  the  name  of the terminal you are using.  Only
-                   required when the automatic way doesn't work.  Should be  a
-                   terminal  known  to Vim (builtin) or defined in the termcap
+                   Tells Vim the name of the terminal  you  are  using.   Only
+                   required  when the automatic way doesn't work.  Should be a
+                   terminal known to Vim (builtin) or defined in  the  termcap
                    or terminfo file.
 
-       -u {vimrc}  Use the commands in the file {vimrc}  for  initializations.
-                   All  the  other  initializations  are skipped.  Use this to
-                   edit a special kind of files.  It can also be used to  skip
-                   all  initializations by giving the name "NONE".  See ":help
+       -u {vimrc}  Use  the  commands in the file {vimrc} for initializations.
+                   All the other initializations are  skipped.   Use  this  to
+                   edit  a special kind of files.  It can also be used to skip
+                   all initializations by giving the name "NONE".  See  ":help
                    initialization" within vim for more details.
 
-       -U {gvimrc} Use the commands in the file {gvimrc} for  GUI  initializa-
-                   tions.   All the other GUI initializations are skipped.  It
-                   can also be used to skip all GUI initializations by  giving
-                   the  name "NONE".  See ":help gui-init" within vim for more
+       -U {gvimrc} Use  the  commands in the file {gvimrc} for GUI initializa‐
+                   tions.  All the other GUI initializations are skipped.   It
+                   can  also be used to skip all GUI initializations by giving
+                   the name "NONE".  See ":help gui-init" within vim for  more
                    details.
 
-       -V[N]       Verbose.  Give messages about which files are  sourced  and
-                   for  reading and writing a viminfo file.  The optional num-
+       -V[N]       Verbose.   Give  messages about which files are sourced and
+                   for reading and writing a viminfo file.  The optional  num‐
                    ber N is the value for 'verbose'.  Default is 10.
 
-       -v          Start Vim in Vi mode, just like the executable  was  called
-                   "vi".   This  only has effect when the executable is called
+       -v          Start  Vim  in Vi mode, just like the executable was called
+                   "vi".  This only has effect when the executable  is  called
                    "ex".
 
        -w {scriptout}
-                   All the characters that you type are recorded in  the  file
-                   {scriptout},  until  you  exit  Vim.  This is useful if you
-                   want to create a script file to be used with  "vim  -s"  or
+                   All  the  characters that you type are recorded in the file
+                   {scriptout}, until you exit Vim.  This  is  useful  if  you
+                   want  to  create  a script file to be used with "vim -s" or
                    ":source!".  If the {scriptout} file exists, characters are
                    appended.
 
@@ -285,27 +285,27 @@
        -x          Use encryption when writing files.  Will prompt for a crypt
                    key.
 
-       -X          Don't  connect to the X server.  Shortens startup time in a
-                   terminal, but the window title and clipboard  will  not  be
+       -X          Don't connect to the X server.  Shortens startup time in  a
+                   terminal,  but  the  window title and clipboard will not be
                    used.
 
        -y          Start Vim in easy mode, just like the executable was called
-                   "evim" or "eview".  Makes Vim behave like a  click-and-type
+                   "evim"  or "eview".  Makes Vim behave like a click-and-type
                    editor.
 
-       -Z          Restricted  mode.   Works  like  the executable starts with
+       -Z          Restricted mode.  Works like  the  executable  starts  with
                    "r".
 
-       --          Denotes the end of the options.  Arguments after this  will
-                   be  handled  as  a  file  name.  This can be used to edit a
+       --          Denotes  the end of the options.  Arguments after this will
+                   be handled as a file name.  This can  be  used  to  edit  a
                    filename that starts with a '-'.
 
        --echo-wid  GTK GUI only: Echo the Window ID on stdout.
 
        --help      Give a help message and exit, just like "-h".
 
-       --literal   Take file name arguments literally,  do  not  expand  wild-
-                   cards.   This has no effect on Unix where the shell expands
+       --literal   Take  file  name  arguments  literally, do not expand wild‐
+                   cards.  This has no effect on Unix where the shell  expands
                    wildcards.
 
        --noplugin  Skip loading plugins.  Implied by -u NONE.
@@ -315,18 +315,18 @@
                    is given and the files are edited in the current Vim.
 
        --remote-expr {expr}
-                   Connect to a Vim server, evaluate {expr} in  it  and  print
+                   Connect  to  a  Vim server, evaluate {expr} in it and print
                    the result on stdout.
 
        --remote-send {keys}
                    Connect to a Vim server and send {keys} to it.
 
        --remote-silent
-                   As  --remote,  but  without  the  warning when no server is
+                   As --remote, but without the  warning  when  no  server  is
                    found.
 
        --remote-wait
-                   As --remote, but Vim does not exit  until  the  files  have
+                   As  --remote,  but  Vim  does not exit until the files have
                    been edited.
 
        --remote-wait-silent
@@ -337,31 +337,31 @@
                    List the names of all Vim servers that can be found.
 
        --servername {name}
-                   Use {name} as the server name.  Used for the  current  Vim,
+                   Use  {name}  as the server name.  Used for the current Vim,
                    unless used with a --remote argument, then it's the name of
                    the server to connect to.
 
        --socketid {id}
-                   GTK GUI only: Use the GtkPlug  mechanism  to  run  gvim  in
+                   GTK  GUI  only:  Use  the  GtkPlug mechanism to run gvim in
                    another window.
 
        --version   Print version information and exit.
 
 ON-LINE HELP
-       Type  ":help"  in Vim to get started.  Type ":help subject" to get help
-       on a specific subject.  For example: ":help ZZ" to  get  help  for  the
-       "ZZ"  command.   Use <Tab> and CTRL-D to complete subjects (":help cmd-
-       line-completion").  Tags are present to jump from one place to  another
+       Type ":help" in Vim to get started.  Type ":help subject" to  get  help
+       on  a  specific  subject.   For example: ":help ZZ" to get help for the
+       "ZZ" command.  Use <Tab> and CTRL-D to complete subjects  (":help  cmd‐
+       line-completion").   Tags are present to jump from one place to another
        (sort of hypertext links, see ":help").  All documentation files can be
        viewed in this way, for example ":help syntax.txt".
 
 FILES
        /usr/local/lib/vim/doc/*.txt
-                      The Vim documentation files.  Use ":help  doc-file-list"
+                      The  Vim documentation files.  Use ":help doc-file-list"
                       to get the complete list.
 
        /usr/local/lib/vim/doc/tags
-                      The  tags file used for finding information in the docu-
+                      The tags file used for finding information in the  docu‐
                       mentation files.
 
        /usr/local/lib/vim/syntax/syntax.vim
@@ -381,7 +381,7 @@
        ~/.gvimrc      Your personal gvim initializations.
 
        /usr/local/lib/vim/optwin.vim
-                      Script used for the ":options" command, a  nice  way  to
+                      Script  used  for  the ":options" command, a nice way to
                       view and set options.
 
        /usr/local/lib/vim/menu.vim
@@ -391,11 +391,11 @@
                       Script to generate a bug report.  See ":help bugs".
 
        /usr/local/lib/vim/filetype.vim
-                      Script  to  detect  the type of a file by its name.  See
+                      Script to detect the type of a file by  its  name.   See
                       ":help 'filetype'".
 
        /usr/local/lib/vim/scripts.vim
-                      Script to detect the type of a  file  by  its  contents.
+                      Script  to  detect  the  type of a file by its contents.
                       See ":help 'filetype'".
 
        /usr/local/lib/vim/print/*.ps
@@ -410,8 +410,8 @@
 AUTHOR
        Most of Vim was made by Bram Moolenaar, with a lot of help from others.
        See ":help credits" in Vim.
-       Vim is based on Stevie, worked on by: Tim Thompson,  Tony  Andrews  and
-       G.R.  (Fred) Walter.  Although hardly any of the original code remains.
+       Vim  is  based  on Stevie, worked on by: Tim Thompson, Tony Andrews and
+       G.R. (Fred) Walter.  Although hardly any of the original code remains.
 
 BUGS
        Probably.  See ":help todo" for a list of known problems.
