Попробуйте заменить
silent :!python helloworld.py
на
silent :!(sleep 0.5s && python helloworld.py) &
redraw!
(дело в том, чтобы вернуться к vim до того, как поступит удаленная команда).Если это работает, то проблема заключается в обработке удаленных команд при получении вывода оболочки.Вы также можете попробовать другие обходные пути:
call system('python helloworld.py')
,
call system('python helloworld.py &')
и
pyfile helloworld.py
(Обратите внимание, что последний требует vim, скомпилированный с функцией + pythonтакже изменяет состояние интерпретатора python, используемого vim).
Кстати, используйте system()
call вместо !
, когда вы не хотите видеть вывод скрипта.Также используйте redraw!
после silent !
.