runtime(doc): Improve :catch documentation
Commit:
https://github.com/vim/vim/commit/6d211bc4f0f4bd9b7ab3b1444f2786b723d04ac0
Author: Christian Brabandt <
c...@256bit.org>
Date: Tue Dec 23 21:58:57 2025 +0000
runtime(doc): Improve :catch documentation
fixes:
https://github.com/vim/vim/issues/18984
Signed-off-by: Christian Brabandt <
c...@256bit.org>
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 7c853795e..8a252b63d 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt* For Vim version 9.1. Last change: 2025 Dec 21
+*eval.txt* For Vim version 9.1. Last change: 2025 Dec 23
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -3718,12 +3718,15 @@ text...
matching {pattern} is being thrown and has not yet
been caught by a previous `:catch`. Otherwise, these
commands are skipped.
- When {pattern} is omitted all errors are caught.
- Examples: >
+ Pattern can start with "Vim({cmd})" to indicate an
+ exception that occurred when executing the Ex command
+ {cmd}. When {pattern} is omitted all errors are
+ caught. Examples: >
:catch /^Vim:Interrupt$/ " catch interrupts (CTRL-C)
:catch /^Vim\%(( \+)\)\=:E/ " catch all Vim errors
:catch /^Vim\%(( \+)\)\=:/ " catch errors and interrupts
:catch /^Vim(write):/ " catch all errors in :write
+ :catch /^Vim(!):/ " catch all errors in :!
:catch /^Vim\%(( \+)\)\=:E123:/ " catch error E123
:catch /my-exception/ " catch user exception
:catch /.*/ " catch everything