Как досрочно выйти из блока python внутри vimscript

#python #vim

#python #vim

Вопрос:

У меня есть функция 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
  

Как досрочно выйти из python изнутри vimscript?

Ответ №1:

На самом деле вы не можете уйти раньше, не сгенерировав ошибку (исключение), которая перехватывается Vim.

Либо используйте if len(data) >= 0: и сделайте отступ в следующем блоке, либо поместите все внутри функции, используйте return для выхода и вызова функции в конце блока.