首页 > 解决方案 > Vim 脚本是否有办法停止任何错误?

问题描述

一个简单的例子:

function! Foo()
    echom 'Starting Foo'
    let x = Bar(123)  " Function does not exist so E117 occurs.
    echom 'Nonetheless, this executes.'
endfunction

如果发生任何错误,Vim 是否具有中止函数或脚本的机制 - 换句话说,在精神上类似于此设置bash

set -o errexit

为了澄清,我了解如何将容易出错的代码包装在try-catch. 我正在寻找一种通用机制来使 Vim 脚本的行为类似于 Python、Ruby、Perl 等语言,其中未处理的错误会导致执行停止。

标签: vimerror-handling

解决方案


TL;博士

总是用abort


您的问题最近在 vi.SE 上有重复:https ://vi.stackexchange.com/questions/29038/how-do-i-make-a-function-stop-when-an-error-occurs/29039#29039 或者,关于同一主题:https ://vi.stackexchange.com/questions/15905/when-should-a-function-not-be-defined-with-abort

关于 SO,还有一些关于abortVimscript:函数定义中“中止”的意义何在?


推荐阅读