В терминале он работает, чтобы сделать
python -c "import sys; print(sys.version)"
но делая
:python -c "import sys; print(sys.version)"
в vim выдает синтаксический сертификат.
В терминале он работает, чтобы сделать
python -c "import sys; print(sys.version)"
но делая
:python -c "import sys; print(sys.version)"
в vim выдает синтаксический сертификат.
Я только что обнаружил здесь, что вы также можете сделать это с помощью
:python import sys; print(sys.version)
Я думаю, вы этого хотите:
Тип:
:python << EOF
import sys;
print(sys.version);
EOF
Если vim был скомпилирован с помощью python, когда вы вводите :python << EOF в командной строке, командная строка будет расширяться с использованием новых строк и ждать EOF. Перед EOF введите свой код python и завершите с помощью EOF.
Изменить:, как вы уже обнаружили, EOF не требуется, и вы можете использовать script в одной строке, без кавычек и -c. Трюк EOF хорош для тестирования скриптов python/VIM в командной строке.
Выполнить :ve[rsion] в режим командной строки или запустите vim --version из Bash.
vim был скомпилирован с Python 3, вы найдете -python и +python3.vim был скомпилирован с Python 2, вы найдете +python и -python3.vim был скомпилирован без поддержки Python, вы найдете -python и -python3 1.Я не уверен, что можно найти как +python, так и +python3 в :ve output -
в настоящее время возможно не.
1 В настоящее время -python и -python3 кажется по умолчанию для Debian vim package. Если вам нужна vim поддержка языков сценариев, установите vim-nox, который предназначен для них и, следовательно, имеет (среди прочего) +python3 включен. Существует также интересная, сильно реорганизованная vim fork, называемая neovim (или nvim вкратце). BTW: on Debian вы можете перечислить все установленные vim, выполнив update-alternatives --list vim.