diff --git a/runtime/doc/message.txt b/runtime/doc/message.txt
index f174884..44ad8bc 100644
--- a/runtime/doc/message.txt
+++ b/runtime/doc/message.txt
@@ -1,4 +1,4 @@
-*message.txt*   For Vim version 8.2.  Last change: 2022 Jan 08
+*message.txt*   For Vim version 8.2.  Last change: 2022 Jan 19
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -46,13 +46,13 @@
 maintainer when you spot a mistake.
 
 If you want to find help on a specific (error) message, use the ID at the
-start of the message.  For example, to get help on the message: >
+start of the message.  For example, to get help on the message:
 
-	E72: Close error on swap file
+	E72: Close error on swap file ~
 
-or (translated): >
+or (translated):
 
-	E72: Errore durante chiusura swap file
+	E72: Errore durante chiusura swap file ~
 
 Use: >
 
@@ -62,6 +62,8 @@
 
 	:help e72
 
+The number in this ID has no meaning.
+
 ==============================================================================
 2. Error messages				*error-messages* *errors*
 
@@ -76,117 +78,117 @@
 LIST OF MESSAGES
 			*E222* *E228* *E232* *E293* *E298* *E304* *E317*
 			*E318* *E356* *E438* *E439* *E440* *E316* *E320* *E322*
-			*E323* *E341* *E473* *E570* *E685* *E292*  >
-  Add to read buffer
-  makemap: Illegal mode
-  Cannot create BalloonEval with both message and callback
-  Hangul automata ERROR
-  block was not locked
-  Didn't get block nr {N}?
-  ml_upd_block0(): Didn't get block 0??
-  pointer block id wrong {N}
-  Updated too many blocks?
-  get_varp ERROR
-  u_undo: line numbers wrong
-  undo list corrupt
-  undo line missing
-  ml_get: cannot find line {N}
-  cannot find line {N}
-  line number out of range: {N} past the end
-  line count wrong in block {N}
-  Internal error
-  Internal error: {function}
-  fatal error in cs_manage_matches
-  Invalid count for del_bytes(): {N}
+			*E323* *E341* *E473* *E570* *E685* *E292* 
+  Add to read buffer ~
+  makemap: Illegal mode ~
+  Cannot create BalloonEval with both message and callback ~
+  Hangul automata ERROR ~
+  block was not locked ~
+  Didn't get block nr {N}? ~
+  ml_upd_block0(): Didn't get block 0?? ~
+  pointer block id wrong {N} ~
+  Updated too many blocks? ~
+  get_varp ERROR ~
+  u_undo: line numbers wrong ~
+  undo list corrupt ~
+  undo line missing ~
+  ml_get: cannot find line {N} ~
+  cannot find line {N} ~
+  line number out of range: {N} past the end ~
+  line count wrong in block {N} ~
+  Internal error ~
+  Internal error: {function} ~
+  fatal error in cs_manage_matches ~
+  Invalid count for del_bytes(): {N} ~
 
 This is an internal error.  If you can reproduce it, please send in a bug
 report. |bugs|
 
->
-  ATTENTION
-  Found a swap file by the name ...
+
+  ATTENTION ~
+  Found a swap file by the name ... ~
 
 See |ATTENTION|.
 
-							*E92*  >
-  Buffer {N} not found
+							*E92* 
+  Buffer {N} not found ~
 
 The buffer you requested does not exist.  This can also happen when you have
 wiped out a buffer which contains a mark or is referenced in another way.
 |:bwipeout|
 
-							*E95*  >
-  Buffer with this name already exists
+							*E95* 
+  Buffer with this name already exists ~
 
 You cannot have two buffers with exactly the same name.  This includes the
 path leading to the file.
 
-							*E72*  >
-  Close error on swap file
+							*E72* 
+  Close error on swap file ~
 
 The |swap-file|, that is used to keep a copy of the edited text, could not be
 closed properly.  Mostly harmless.
 
-							*E169*  >
-  Command too recursive
+							*E169* 
+  Command too recursive ~
 
 This happens when an Ex command executes an Ex command that executes an Ex
 command, etc.  The limit is 200 or the value of 'maxfuncdepth', whatever is
 larger.  When it's more there probably is an endless loop.  Probably a
 |:execute| or |:source| command is involved.
 
-							*E254*  >
-  Cannot allocate color {name}
+							*E254* 
+  Cannot allocate color {name} ~
 
 The color name {name} is unknown.  See |gui-colors| for a list of colors that
 are available on most systems.
 
-							*E1244*  >
-  Bad color string: {str}
+							*E1244* 
+  Bad color string: {str} ~
 
 The provided color did not conform to the pattern #rrggbb
 
-							*E458*  >
-  Cannot allocate colormap entry, some colors may be incorrect
+							*E458* 
+  Cannot allocate colormap entry, some colors may be incorrect ~
 
 This means that there are not enough colors available for Vim.  It will still
 run, but some of the colors will not appear in the specified color.  Try
 stopping other applications that use many colors, or start them after starting
 gvim.
 Browsers are known to consume a lot of colors.  You can avoid this with
-netscape by telling it to use its own colormap: >
-	netscape -install
-Or tell it to limit to a certain number of colors (64 should work well): >
-	netscape -ncols 64
-This can also be done with a line in your Xdefaults file: >
-	Netscape*installColormap: Yes
-or >
-	Netscape*maxImageColors:  64
-<
-							*E79*  >
-  Cannot expand wildcards
+netscape by telling it to use its own colormap:
+	netscape -install ~
+Or tell it to limit to a certain number of colors (64 should work well):
+	netscape -ncols 64 ~
+This can also be done with a line in your Xdefaults file:
+	Netscape*installColormap: Yes ~
+or
+	Netscape*maxImageColors:  64 ~
+
+							*E79* 
+  Cannot expand wildcards ~
 
 A filename contains a strange combination of characters, which causes Vim to
 attempt expanding wildcards but this fails.  This does NOT mean that no
 matching file names could be found, but that the pattern was illegal.
 
-							*E459*  >
-  Cannot go back to previous directory
+							*E459* 
+  Cannot go back to previous directory ~
 
 While expanding a file name, Vim failed to go back to the previously used
 directory.  All file names being used may be invalid now!  You need to have
 execute permission on the current directory.
 
-							*E190* *E212*  >
-  Cannot open "{filename}" for writing
-  Can't open file for writing
+							*E190* *E212* 
+  Cannot open "{filename}" for writing ~
+  Can't open file for writing ~
 
 For some reason the file you are writing to cannot be created or overwritten.
 The reason could be that you do not have permission to write in the directory
 or the file name is not valid.
 
-							*E166*  >
-  Can't open linked file for writing
+							*E166* 
+  Can't open linked file for writing ~
 
 You are trying to write to a file which can't be overwritten, and the file is
 a link (either a hard link or a symbolic link).  Writing might still be
@@ -197,20 +199,20 @@
 manually delete the link or the file, or change the permissions so that Vim
 can overwrite.
 
-							*E46*  >
-  Cannot change read-only variable "{name}"
+							*E46* 
+  Cannot change read-only variable "{name}" ~
 
 You are trying to assign a value to an argument of a function |a:var| or a Vim
 internal variable |v:var| which is read-only.
 
-							*E90*  >
-  Cannot unload last buffer
+							*E90* 
+  Cannot unload last buffer ~
 
 Vim always requires one buffer to be loaded, otherwise there would be nothing
 to display in the window.
 
-							*E40*  >
-  Can't open errorfile <filename>
+							*E40* 
+  Can't open errorfile <filename> ~
 
 When using the ":make" or ":grep" commands: The file used to save the error
 messages or grep output cannot be opened.  This can have several causes:
@@ -222,8 +224,8 @@
 - The 'grepprg' or 'makeprg' could not be executed.  This cannot always be
   detected (especially on MS-Windows).  Check your $PATH.
 
- >
-  Can't open file C:\TEMP\VIoD243.TMP
+ 
+  Can't open file C:\TEMP\VIoD243.TMP ~
 
 On MS-Windows, this message appears when the output of an external command was
 to be read, but the command didn't run successfully.  This can be caused by
@@ -231,21 +233,21 @@
 related options.  It might also be that the external command was not found,
 there is no different error message for that.
 
-							*E12*  >
-  Command not allowed from exrc/vimrc in current dir or tag search
+							*E12* 
+  Command not allowed from exrc/vimrc in current dir or tag search ~
 
 Some commands are not allowed for security reasons.  These commands mostly
 come from a .exrc or .vimrc file in the current directory, or from a tags
 file.  Also see 'secure'.
 
-							*E74*  >
-  Command too complex
+							*E74* 
+  Command too complex ~
 
 A mapping resulted in a very long command string.  Could be caused by a
 mapping that indirectly calls itself.
 
->
-  CONVERSION ERROR
+
+  CONVERSION ERROR ~
 
 When writing a file and the text "CONVERSION ERROR" appears, this means that
 some bits were lost when converting text from the internally used UTF-8 to the
@@ -257,51 +259,51 @@
 be deleted, so you can move it back into place if you want to discard the
 changes.
 
-							*E302*  >
-  Could not rename swap file
+							*E302* 
+  Could not rename swap file ~
 
 When the file name changes, Vim tries to rename the |swap-file| as well.
 This failed and the old swap file is now still used.  Mostly harmless.
 
-							*E43* *E44*  >
-  Damaged match string
-  Corrupted regexp program
+							*E43* *E44* 
+  Damaged match string ~
+  Corrupted regexp program ~
 
 Something inside Vim went wrong and resulted in a corrupted regexp.  If you
 know how to reproduce this problem, please report it. |bugs|
 
-							*E208* *E209* *E210*  >
-  Error writing to "{filename}"
-  Error closing "{filename}"
-  Error reading "{filename}"
+							*E208* *E209* *E210* 
+  Error writing to "{filename}" ~
+  Error closing "{filename}" ~
+  Error reading "{filename}" ~
 
 This occurs when Vim is trying to rename a file, but a simple change of file
 name doesn't work.  Then the file will be copied, but somehow this failed.
 The result may be that both the original file and the destination file exist
 and the destination file may be incomplete.
 
->
-  Vim: Error reading input, exiting...
+
+  Vim: Error reading input, exiting... ~
 
 This occurs when Vim cannot read typed characters while input is required.
 Vim got stuck, the only thing it can do is exit.  This can happen when both
 stdin and stderr are redirected and executing a script that doesn't exit Vim.
 
-							*E47*  >
-  Error while reading errorfile
+							*E47* 
+  Error while reading errorfile ~
 
 Reading the error file was not possible.  This is NOT caused by an error
 message that was not recognized.
 
-							*E80*  >
-  Error while writing
+							*E80* 
+  Error while writing ~
 
 Writing a file was not completed successfully.  The file is probably
 incomplete.
 
-							*E13* *E189*  >
-  File exists (add ! to override)
-  "{filename}" exists (add ! to override)
+							*E13* *E189* 
+  File exists (add ! to override) ~
+  "{filename}" exists (add ! to override) ~
 
 You are protected from accidentally overwriting a file.  When you want to
 write anyway, use the same command, but add a "!" just after the command.
@@ -310,8 +312,8 @@
 changes to: >
 	:w! /tmp/test
 <
-							*E768*  >
-  Swap file exists: {filename} (:silent! overrides)
+							*E768* 
+  Swap file exists: {filename} (:silent! overrides) ~
 
 You are protected from overwriting a file that is being edited by Vim.  This
 happens when you use ":w! filename" and a swapfile is found.
@@ -323,115 +325,115 @@
 < The special command is needed, since you already added the ! for overwriting
   an existing file.
 
-							*E139*  >
-  File is loaded in another buffer
+							*E139* 
+  File is loaded in another buffer ~
 
 You are trying to write a file under a name which is also used in another
 buffer.  This would result in two versions of the same file.
 
-							*E142*  >
-  File not written: Writing is disabled by 'write' option
+							*E142* 
+  File not written: Writing is disabled by 'write' option ~
 
 The 'write' option is off.  This makes all commands that try to write a file
 generate this message.  This could be caused by a |-m| commandline argument.
 You can switch the 'write' option on with ":set write".
 
-							*E25*  >
-  GUI cannot be used: Not enabled at compile time
+							*E25* 
+  GUI cannot be used: Not enabled at compile time ~
 
 You are running a version of Vim that doesn't include the GUI code.  Therefore
 "gvim" and ":gui" don't work.
 
-							*E49*  >
-  Invalid scroll size
+							*E49* 
+  Invalid scroll size ~
 
 This is caused by setting an invalid value for the 'scroll', 'scrolljump' or
 'scrolloff' options.
 
-							*E17*  >
-  "{filename}" is a directory
+							*E17* 
+  "{filename}" is a directory ~
 
 You tried to write a file with the name of a directory.  This is not possible.
 You probably need to append a file name.
 
-							*E19*  >
-  Mark has invalid line number
+							*E19* 
+  Mark has invalid line number ~
 
 You are using a mark that has a line number that doesn't exist.  This can
 happen when you have a mark in another file, and some other program has
 deleted lines from it.
 
-							*E219* *E220*  >
-  Missing {.
-  Missing }.
+							*E219* *E220* 
+  Missing {. ~
+  Missing }. ~
 
 Using a {} construct in a file name, but there is a { without a matching } or
 the other way around.  It should be used like this: {foo,bar}.  This matches
 "foo" and "bar".
 
-							*E315*  >
-  ml_get: invalid lnum: {number}
+							*E315* 
+  ml_get: invalid lnum: {number} ~
 
 This is an internal Vim error.  Please try to find out how it can be
 reproduced, and submit a bug report |bugreport.vim|.
 
-							*E173*  >
-  {number} more files to edit
+							*E173* 
+  {number} more files to edit ~
 
 You are trying to exit, while the last item in the argument list has not been
 edited.  This protects you from accidentally exiting when you still have more
 files to work on.  See |argument-list|.  If you do want to exit, just do it
 again and it will work.
 
-							*E23* *E194*  >
-  No alternate file
-  No alternate file name to substitute for '#'
+							*E23* *E194* 
+  No alternate file ~
+  No alternate file name to substitute for '#' ~
 
 The alternate file is not defined yet.  See |alternate-file|.
 
-							*E32*  >
-  No file name
+							*E32* 
+  No file name ~
 
 The current buffer has no name.  To write it, use ":w fname".  Or give the
 buffer a name with ":file fname".
 
-							*E141*  >
-  No file name for buffer {number}
+							*E141* 
+  No file name for buffer {number} ~
 
 One of the buffers that was changed does not have a file name.  Therefore it
 cannot be written.  You need to give the buffer a file name: >
 	:buffer {number}
 	:file {filename}
 <
-							*E33*  >
-  No previous substitute regular expression
+							*E33* 
+  No previous substitute regular expression ~
 
 When using the '~' character in a pattern, it is replaced with the previously
 used pattern in a ":substitute" command.  This fails when no such command has
 been used yet.  See |/~|.  This also happens when using ":s/pat/%/", where the
 "%" stands for the previous substitute string.
 
-							*E35*  >
-  No previous regular expression
+							*E35* 
+  No previous regular expression ~
 
 When using an empty search pattern, the previous search pattern is used.  But
 that is not possible if there was no previous search.
 
-							*E24*  >
-  No such abbreviation
+							*E24* 
+  No such abbreviation ~
 
 You have used an ":unabbreviate" command with an argument which is not an
 existing abbreviation.  All variations of this command give the same message:
 ":cunabbrev", ":iunabbrev", etc.  Check for trailing white space.
 
->
-  /dev/dsp: No such file or directory
+
+  /dev/dsp: No such file or directory ~
 
 Only given for GTK GUI with Gnome support.  Gnome tries to use the audio
 device and it isn't present.  You can ignore this error.
 
-							*E31*  >
-  No such mapping
+							*E31*
+  No such mapping ~
 
 You have used an ":unmap" command with an argument which is not an existing
 mapping.  All variations of this command give the same message: ":cunmap",
@@ -440,9 +442,9 @@
 - If the mapping is buffer-local you need to use ":unmap <buffer>".
   |:map-<buffer>|
 
-							*E37* *E89*  >
-  No write since last change (add ! to override)
-  No write since last change for buffer {N} (add ! to override)
+							*E37* *E89* 
+  No write since last change (add ! to override) ~
+  No write since last change for buffer {N} (add ! to override) ~
 
 You are trying to |abandon| a file that has changes.  Vim protects you from
 losing your work.  You can either write the changed file with ":w", or, if you
@@ -452,8 +454,8 @@
 changes to: >
 	:e! other_file
 <
-							*E162*  >
-  No write since last change for buffer "{name}"
+							*E162* 
+  No write since last change for buffer "{name}" ~
 
 This appears when you try to exit Vim while some buffers are changed.  You
 will either have to write the changed buffer (with |:w|), or use a command to
@@ -461,23 +463,23 @@
 don't throw away changes you really want to keep.  You might have forgotten
 about a buffer, especially when 'hidden' is set.
 
->
-  [No write since last change]
+
+  [No write since last change] ~
 
 This appears when executing a shell command while at least one buffer was
 changed.  To avoid the message reset the 'warn' option.
 
-							*E38*  >
-  Null argument
+							*E38* 
+  Null argument ~
 
 Something inside Vim went wrong and resulted in a NULL pointer.  If you know
 how to reproduce this problem, please report it. |bugs|
 
-						*E41* *E82* *E83* *E342*  >
-  Out of memory!
-  Out of memory!  (allocating {number} bytes)
-  Cannot allocate any buffer, exiting...
-  Cannot allocate buffer, using other one...
+						*E41* *E82* *E83* *E342* 
+  Out of memory! ~
+  Out of memory!  (allocating {number} bytes) ~
+  Cannot allocate any buffer, exiting... ~
+  Cannot allocate buffer, using other one... ~
 
 Oh, oh.  You must have been doing something complicated, or some other program
 is consuming your memory.  Be careful!  Vim is not completely prepared for an
@@ -495,16 +497,16 @@
   helps for a change that affects all lines.
 - 'undoreload' Set to zero to disable.
 
-							*E339*  >
-  Pattern too long
+							*E339* 
+  Pattern too long ~
 
 This happens on systems with 16 bit ints: The compiled regexp pattern is
 longer than about 65000 characters.  Try using a shorter pattern.
 It also happens when the offset of a rule doesn't fit in the space available.
 Try simplifying the pattern.
 
-							*E45*  >
-  'readonly' option is set (add ! to override)
+							*E45* 
+  'readonly' option is set (add ! to override) ~
 
 You are trying to write a file that was marked as read-only.  To write the
 file anyway, either reset the 'readonly' option, or add a '!' character just
@@ -513,18 +515,18 @@
 changes to: >
 	:w!
 <
-							*E294* *E295* *E301*  >
-  Read error in swap file
-  Seek error in swap file read
-  Oops, lost the swap file!!!
+							*E294* *E295* *E301* 
+  Read error in swap file ~
+  Seek error in swap file read ~
+  Oops, lost the swap file!!! ~
 
 Vim tried to read text from the |swap-file|, but something went wrong.  The
 text in the related buffer may now be corrupted!  Check carefully before you
 write a buffer.  You may want to write it in another file and check for
 differences.
 
-							*E192*  >
-  Recursive use of :normal too deep
+							*E192* 
+  Recursive use of :normal too deep ~
 
 You are using a ":normal" command, whose argument again uses a ":normal"
 command in a recursive way.  This is restricted to 'maxmapdepth' levels.  This
@@ -532,16 +534,16 @@
 	:map gq :normal gq<CR>
 If you type "gq", it will execute this mapping, which will call "gq" again.
 
-							*E22*  >
-  Scripts nested too deep
+							*E22* 
+  Scripts nested too deep ~
 
 Scripts can be read with the "-s" command-line argument and with the
 `:source!` command.  The script can then again read another script.  This can
 continue for about 14 levels.  When more nesting is done, Vim assumes that
 there is a recursive loop and stops with this error message.
 
-							*E319*  >
-  Sorry, the command is not available in this version
+							*E319* 
+  Sorry, the command is not available in this version ~
 
 You have used a command that is not present in the version of Vim you are
 using.  When compiling Vim, many different features can be enabled or
@@ -549,8 +551,8 @@
 system.  See |+feature-list| for when which feature is available.  The
 |:version| command shows which feature Vim was compiled with.
 
-							*E300*  >
-  Swap file already exists (symlink attack?)
+							*E300* 
+  Swap file already exists (symlink attack?) ~
 
 This message appears when Vim is trying to open a swap file and finds it
 already exists or finds a symbolic link in its place.  This shouldn't happen,
@@ -559,8 +561,8 @@
 attempting a symlink attack (could happen when editing a file in /tmp or when
 'directory' starts with "/tmp", which is a bad choice).
 
-							*E432*  >
-  Tags file not sorted: {file name}
+							*E432* 
+  Tags file not sorted: {file name} ~
 
 Vim (and Vi) expect tags files to be sorted in ASCII order.  Binary searching
 can then be used, which is a lot faster than a linear search.  If your tags
@@ -569,21 +571,21 @@
 tag.  Sometimes this message is not given, even though the tags file is not
 properly sorted.
 
-							*E424*  >
-  Too many different highlighting attributes in use
+							*E424* 
+  Too many different highlighting attributes in use ~
 
 Vim can only handle about 223 different kinds of highlighting.  If you run
 into this limit, you have used too many |:highlight| commands with different
 arguments.  A ":highlight link" is not counted.
 
-							*E77*  >
-  Too many file names
+							*E77* 
+  Too many file names ~
 
 When expanding file names, more than one match was found.  Only one match is
 allowed for the command that was used.
 
-							*E303*  >
-  Unable to open swap file for "{filename}", recovery impossible
+							*E303* 
+  Unable to open swap file for "{filename}", recovery impossible ~
 
 Vim was not able to create a swap file.  You can still edit the file, but if
 Vim unexpectedly exits the changes will be lost.  And Vim may consume a lot of
@@ -591,25 +593,25 @@
 to avoid this error.  This error is not given when 'directory' is empty.  See
 |swap-file|.
 
-							*E140*  >
-  Use ! to write partial buffer
+							*E140* 
+  Use ! to write partial buffer ~
 
 When using a range to write part of a buffer, it is unusual to overwrite the
 original file.  It is probably a mistake (e.g., when Visual mode was active
 when using ":w"), therefore Vim requires using a !  after the command, e.g.:
 ":3,10w!".
->
 
-  Warning: Cannot convert string "<Key>Escape,_Key_Cancel" to type
-  VirtualBinding
+
+  Warning: Cannot convert string "<Key>Escape,_Key_Cancel" to type ~
+  VirtualBinding ~
 
 Messages like this appear when starting up.  This is not a Vim problem, your
 X11 configuration is wrong.  You can find a hint on how to solve this here:
 http://groups.yahoo.com/group/solarisonintel/message/12179.
 [this URL is no longer valid]
 
-							*W10*  >
-  Warning: Changing a readonly file
+							*W10* 
+  Warning: Changing a readonly file ~
 
 The file is read-only and you are making a change to it anyway.  You can use
 the |FileChangedRO| autocommand event to avoid this message (the autocommand
@@ -617,15 +619,15 @@
 making changes to a file.
 This message is only given for the first change after 'readonly' has been set.
 
-							*W13*  >
-  Warning: File "{filename}" has been created after editing started
+							*W13* 
+  Warning: File "{filename}" has been created after editing started ~
 
 You are editing a file in Vim when it didn't exist, but it does exist now.
 You will have to decide if you want to keep the version in Vim or the newly
 created file.  This message is not given when 'buftype' is not empty.
 
-							*W11*  >
-  Warning: File "{filename}" has changed since editing started
+							*W11* 
+  Warning: File "{filename}" has changed since editing started ~
 
 The file which you have started editing has got another timestamp and the
 contents changed (more precisely: When reading the file again with the current
@@ -648,15 +650,15 @@
 If you get W11 all the time, you may need to disable "Acronis Active
 Protection" or register Vim as a trusted service/application.
 
-							*W12*  >
-  Warning: File "{filename}" has changed and the buffer was changed in Vim as well
+							*W12* 
+  Warning: File "{filename}" has changed and the buffer was changed in Vim as well ~
 
 Like the above, and the buffer for the file was changed in this Vim as well.
 You will have to decide if you want to keep the version in this Vim or the one
 on disk.  This message is not given when 'buftype' is not empty.
 
-							*W16*  >
-  Warning: Mode of file "{filename}" has changed since editing started
+							*W16* 
+  Warning: Mode of file "{filename}" has changed since editing started ~
 
 When the timestamp for a buffer was changed and the contents are still the
 same but the mode (permissions) have changed.  This usually occurs when
@@ -664,37 +666,37 @@
 bit to be reset.  It should be safe to reload the file.  Set 'autoread' to
 automatically reload the file.
 
-							*E211*  >
-  File "{filename}" no longer available
+							*E211* 
+  File "{filename}" no longer available ~
 
 The file which you have started editing has disappeared, or is no longer
 accessible.  Make sure you write the buffer somewhere to avoid losing
 changes.  This message is not given when 'buftype' is not empty.
 
-							*W14*  >
-  Warning: List of file names overflow
+							*W14* 
+  Warning: List of file names overflow ~
 
 You must be using an awful lot of buffers.  It's now possible that two buffers
 have the same number, which causes various problems.  You might want to exit
 Vim and restart it.
 
-							*E931*  >
-  Buffer cannot be registered
+							*E931* 
+  Buffer cannot be registered ~
 
 Out of memory or a duplicate buffer number.  May happen after W14.  Looking up
 a buffer will not always work, better restart Vim.
 
-							*E296* *E297*  >
-  Seek error in swap file write
-  Write error in swap file
+							*E296* *E297* 
+  Seek error in swap file write ~
+  Write error in swap file ~
 
 This mostly happens when the disk is full.  Vim could not write text into the
 |swap-file|.  It's not directly harmful, but when Vim unexpectedly exits some
 text may be lost without recovery being possible.  Vim might run out of memory
 when this problem persists.
 
-						*connection-refused*  >
-  Xlib: connection to "<machine-name:0.0" refused by server
+						*connection-refused* 
+  Xlib: connection to "<machine-name:0.0" refused by server ~
 
 This happens when Vim tries to connect to the X server, but the X server does
 not allow a connection.  The connection to the X server is needed to be able
@@ -702,55 +704,55 @@
 error message cannot be avoided, except by disabling the |+xterm_clipboard|
 and |+X11| features.
 
-							*E10*  >
-  \\ should be followed by /, ? or &
+							*E10* 
+  \\ should be followed by /, ? or & ~
 
 A command line started with a backslash or the range of a command contained a
 backslash in a wrong place.  This is often caused by command-line continuation
 being disabled.  Remove the 'C' flag from the 'cpoptions' option to enable it.
 Or use ":set nocp".
 
-							*E471*  >
-  Argument required
+							*E471* 
+  Argument required ~
 
 This happens when an Ex command with mandatory argument(s) was executed, but
 no argument has been specified.
 
-							*E474* *E475* *E983*  >
-  Invalid argument
-  Invalid argument: {arg}
-  Duplicate argument: {arg}
+							*E474* *E475* *E983* 
+  Invalid argument ~
+  Invalid argument: {arg} ~
+  Duplicate argument: {arg} ~
 
 An Ex command or function has been executed, but an invalid argument has been
 specified.
 
-							*E488*  >
-  Trailing characters
+							*E488* 
+  Trailing characters ~
 
 An argument has been added to an Ex command that does not permit one.
 Or the argument has invalid characters and has not been recognized.
 
-							*E477* *E478*  >
-  No ! allowed
-  Don't panic!
+							*E477* *E478* 
+  No ! allowed ~
+  Don't panic! ~
 
 You have added a "!" after an Ex command that doesn't permit one.
 
-							*E481*  >
-  No range allowed
+							*E481* 
+  No range allowed ~
 
 A range was specified for an Ex command that doesn't permit one.  See
 |cmdline-ranges|.
 
-							*E482* *E483*  >
-  Can't create file {filename}
-  Can't get temp file name
+							*E482* *E483* 
+  Can't create file {filename} ~
+  Can't get temp file name ~
 
 Vim cannot create a temporary file.
 
-							*E484* *E485*  >
-  Can't open file {filename}
-  Can't read file {filename}
+							*E484* *E485* 
+  Can't open file {filename} ~
+  Can't read file {filename} ~
 
 Vim cannot read a temporary file.  Especially on Windows, this can be caused
 by wrong escaping of special characters for cmd.exe; the approach was
@@ -758,8 +760,8 @@
 given to |system()|, or explicitly add escaping with ^.  Also see
 'shellxquote' and 'shellxescape'.
 
-							*E464*  >
-  Ambiguous use of user-defined command
+							*E464* 
+  Ambiguous use of user-defined command ~
 
 There are two user-defined commands with a common name prefix, and you used
 Command-line completion to execute one of them. |user-cmd-ambiguous|
@@ -768,23 +770,22 @@
 	:command MyCommand2 echo "two"
 	:MyCommand
 <
-							*E492*  >
-  Not an editor command
+							*E492* 
+  Not an editor command ~
 
 You tried to execute a command that is neither an Ex command nor
 a user-defined command.
 
-							*E943*  >
-  Command table needs to be updated, run 'make cmdidxs'
+							*E943* 
+  Command table needs to be updated, run 'make cmdidxs' ~
 
 This can only happen when changing the source code, when adding a command in
 src/ex_cmds.h.  The lookup table then needs to be updated, by running: >
 	make cmdidxs
 <
-						*E928* *E889* *E839*  >
-  E928: String required
-  E889: Number required
-  E839: Bool required
+						*E928* *E889* 
+  E928: String required ~
+  E889: Number required ~
 
 These happen when a value or expression is used that does not have the
 expected type.
@@ -841,9 +842,9 @@
 group.
 
 
-						*more-prompt* *pager*  >
-  -- More --
-  -- More -- SPACE/d/j: screen/page/line down, b/u/k: up, q: quit
+						*more-prompt* *pager* 
+  -- More -- ~
+  -- More -- SPACE/d/j: screen/page/line down, b/u/k: up, q: quit ~
 
 This message is given when the screen is filled with messages.  It is only
 given when the 'more' option is on.  It is highlighted with the |hl-MoreMsg|
