Neovim выдает ошибку при запуске input (), работает нормально в Vim - PullRequest
0 голосов
/ 20 мая 2019

Здесь вопрос Noob, Neovim выдает ошибку при запуске скрипта с помощью input () в окне командной строки, в то время как тот же скрипт выполняется в vim 8.0.например,

print('Enter your name:')
myName = input()

:!python% <- используется бывшая команда </p>

Вывод Nvim:

myName: Traceback (most recent call last):
  File "x.py", line 2, in <module>
    myName = input()
EOFError: EOF when reading a line

shell returned 1

Я предпочитаю, как neovim запускает свои скрипты в своем собственном нижнем окне, а не выводит vim в командную строку, но яприходится переключаться на vim для любых сценариев, использующих input ().

Есть ли здесь настройка nvim.init или другая команда, которую я могу использовать для достижения успеха, или это известный недостаток в neovim?Я использую последние vim и nvim.

1 Ответ

0 голосов
/ 21 мая 2019

Я не уверен, почему вы получаете эту ошибку. Но, поскольку вы используете neovim, пробовали ли вы использовать встроенный эмулятор terminal? Следующая команда может быть использована для запуска программы в newovim в новом разделенном окне:

:vsplit term://python3 %

python3 - это название программы, которое можно заменить любой другой программой. Где % - путь к текущему файлу. См. :h terminal-start для получения дополнительной информации.

То же самое можно сделать с помощью Vim (8.0 или выше) с помощью команды:

:term python3 %

это снова откроет новый сплит для запуска программы. См. :h terminal для получения дополнительной информации.

Дальнейшая оптимизация рабочего процесса будет заключаться в добавлении сопоставления для конкретного типа файла. В нашем случае это будет (Unix-подобные системы) в ~/.vim/after/ftplugin/python.vim

nnoremap <leader>r :vsplit term://python3 %<cr>
...