Vimscript 中的 try-catch

发布于 2024-11-04 06:00:26 字数 246 浏览 0 评论 0原文

我试图在 Vim 中捕获错误(E490),如下所示:

:try | foldopen! | catch | | endtry

尽管如此,在执行此操作时,Vim 显示错误:

Error detected while processing :
E490: No fold found

我想打开所有折叠(如果存在)。

有什么想法吗?

I am trying to catch an error (E490) in Vim like this:

:try | foldopen! | catch | | endtry

Still, when executing this, Vim shows the error:

Error detected while processing :
E490: No fold found

I would like to open all folds if any are present.

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

眼波传意 2024-11-11 06:00:26

看起来像一个错误:您的版本显示错误,

:execute 'try | foldopen! | catch | | endtry'

行为就像

:echo 'try | foldopen! | catch | | endtry'

没有折叠一样。

尝试以下解决方法:

:execute "try\n    foldopen!\ncatch\nendtry'

顺便说一句,如果您想忽略所有错误,有一个更好的方法:

:silent! foldopen!

请注意,如果存在重定向,它不会清除消息,而 try...catch将要。

Looks like a bug: your version shows an error,

:execute 'try | foldopen! | catch | | endtry'

acts like

:echo 'try | foldopen! | catch | | endtry'

without folds.

Try the following workaround:

:execute "try\n    foldopen!\ncatch\nendtry'

By the way, there is a better way if you want to ignore all errors:

:silent! foldopen!

Note that it won't purge messages from redirection if it is present, while try...catch will.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文