如何提前退出 vimscript 中的 python 块

How to exit early from a python block inside vimscript

我有一个 vim 函数,类似这样

func! Foo()
python3 <<EOF
import yaml, sys
data = yaml.safe_load('@"')
if len(data) < 0:
  sys.exit(0)
# do more stuff on data
EOF
endfun

显然这不起作用,我收到此错误:

ch 3 was closed by the client

如何从 vim 脚本中提前退出 python?

如果不产生被 Vim.

捕获的错误(异常),你就不能真正提前离开

要么使用 if len(data) >= 0: 并缩进后面的块,要么将所有内容都放在函数中,使用 return 退出并在块末尾调用函数。