Thursday, March 31, 2011

Re: What is supposed to happen if there is an error in a vim script?

Am 31.03.2011 08:38, schrieb Rostyslaw Lewyckyj:
> IF vim recognizes an error in a script, what does it do?
> Where are the rules for this detailed?
>
> Suppose that while editing file.foo, I initiate a script
> e.g. :so myscript.vim
> and there is an error
> e.g. the script looks for a non existing pattern in file.foo
> After issuing its error message what is the expected action
> for the general case:
> 1. The script is immediately terminated, returning to the
> invocation point?
> 2. After possibly issuing an error message,
> the script continues trying to execute with its next command.
> In this case as if the search for the pattern had not failed?
>
> Are these kinds of exception rules spelled out explicitly
> anywhere in the available documentation?
> Not just mentioned in passing by an example!
>
> In my simple test case, it appears that 2. is the rule.
> But of course I'm just seemingly poking a black box.

:h except-compat

Normally, a script is sourced to the end, even if errors occur. This is
the same in all (also older) Vim versions.

But if :source is executed within a :try-block, sourcing will stop on
the first error.
try
so script.vim
endtry

If you want to still source to the end, you have to use :sil! to
surpress errors:
try
:sil! so script.vim
endtry

What you can't have is: execute :so within a :try-block and still see
all error messages (not only the first).

--
Andy

--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

No comments: