Я пытаюсь получить поддержку Python в gVim для Windows. Есть ли способ сделать это?
Я использую:
- Windows XP SP3
- gVim v. 7.3
- Python 2.7.13 (ActivePython через двоичные файлы установщика Windows)
Я пытаюсь получить поддержку Python в gVim для Windows. Есть ли способ сделать это?
Я использую:
Обычно поддержка python встроена в официальное распределение gvim.
Вам нужно будет установить python: Загрузка Python
чтобы проверить, поддерживает ли vim python:
:echo has("python")
У меня была такая же проблема, но в Windows 7, и перезагрузка не исправила.
У меня уже установлен gVim 7.3. На момент написания текущей версии Python было 3,3, поэтому я установил это. Но: имеет ( "python" ) и: has ( "python3" ) все еще возвращает 0.
После долгих проб и ошибок я определил, что:
Компиляция: cl -c/W3/nologo -I. -Iproto -DHAVE_PATHDEF -DWIN32
-DFEAT_CSCOPE -DFEAT_ NETBEANS_INTG -DFEAT_XPM_W32 -DWINVER = 0x0400 -D_WIN32_WINNT = 0x0400/Fo.\ObjGOLYHTR//Ox/GL -DNDEBUG/Zl/MT -DFEAT_OLE -DFEAT_MBYTE_IME -DDYNAMIC_IME -DFEAT_GUI_W32 -DDYNAMI C_ICONV -DDYNAMIC_GETTEXT -DFEAT_TCL -DDYNAMIC_TCL -DDYNAMIC_TCL_DLL =\ "tcl83.dll \" -DDYNAM IC_TCL_VER =\ "8.3 \" -DFEAT_PYTHON -DDYNAMIC_PYTHON -DDYNAMIC_PYTHON_DLL =\ " python27.dll \" -D FEAT_PYTHON3 -DDYNAMIC_PYTHON3 -DDYNAMIC_PYTHON3_DLL =\ " python31.dll\" -DFEAT_PERL -DDYNAMI C_PERL -DDYNAMIC_PERL_DLL = \ "perl512.dll\" -DFEAT_RUBY -DDYNAMIC_RUBY -DDYNAMIC_RUBY_VER = 19 1 -DDYNAMIC_RUBY_DLL = \ "msvcrt-ruby191.dll\" -DFEAT_BIG/Fd.\ObjGOLYHTR//Zi
Итак, выше сказано, что я действительно не хочу python 3.3, мне нужно 3,1 (или 2,7). После установки python 3.1,: has ( "python" ) все равно возвращает 0, но: has ( "python3" ) теперь возвращает 1. Это должно означать, что скрипты на основе python теперь будут работать!
Я предполагаю, что будущие версии gVim могут быть скомпилированы против других версий python, но использование этого метода должно позволить вам решить, какая версия требуется.
Я столкнулся с этой проблемой на 64-разрядной версии Windows 7. Я понял, что использую 64-битные версии Python 2.7.3 и 32-бит vim 7.3-46. Я переустановил как 32-разрядные версии, так и перезапустил компьютер. Теперь он работает.
Если вы установили Python через один из установщиков Windows, он, вероятно, скомпилирован с поддержкой Python 2.7. Вы можете проверить это, выполнив:
:version
Он выплюнет все варианты, с которыми был скомпилирован Vim. Ваш должен сказать что-то вроде
+python/dyn +python3\dyn
Это означает, что у вас есть поддержка для python 2.7 и 3.x. Если у вас уже есть 2.5, это не сработает. Вам нужно будет обновить до 2.7 или 3.x.
Извините за поздний вклад. Проблема в том, что вы не можете смешивать x86 vim с библиотеками x64 python, и все предлагаемые решения сводятся к переустановке x86 python. Ну, я не хочу переустанавливать Python, Ruby, и кто знает, что еще зависит от них, только потому, что vim официально не обеспечивает справедливое распространение x64 на windows. Хорошей новостью является то, что вы все еще можете найти его хорошо скрытым по адресу http://vim.wikia.com/wiki/Where_to_download_Vim. Удачи, и позаботьтесь о версиях библиотеки Python.
Принятый ответ не решил мою проблему, поэтому я решил опубликовать решение, которое я нашел после некоторых усилий.
Во-первых, как отметил принятый ответ, вам понадобятся как gVim, скомпилированные с включенным python, так и соответствующая установка python. Убедитесь, что они 32-разрядные или 64-разрядные. Я обнаружил, что сборка по умолчанию из www.vim.org не включала python, также показалось, что она 32-битная, что не соответствовало мой python27. В результате я создал сборку "gvim_8.0.0003_x64.zip" из vim Git репозиторий
Затем я распаковал его, скопировал папку "vim80" в официальное место установки vim (созданное 32-разрядной установкой, загруженной на сайт www.vim.org).
Теперь vim работает с моим 64-битным python2.7.
ОБНОВЛЕНИЕ 02/24/2017:
Не удалось выполнить описанную выше процедуру на другом компьютере, где локальная установка python - 2.7.9. Моя версия Python составляет 2,7.11, когда мне это удалось.
Итак, кажется, что сборка из репозитория vim Git работает для конкретной версии Python. Попробуйте обновить установку Python до версии 2.7.11. Если вам нужно использовать более старую версию Python, возможно, вам нужно будет создать исходный код Vim на вашем компьютере. Это не слишком сложно, следуя инструкциям, и используйте Visual Studio, предоставленный cmd, вместо стандартного CMD по умолчанию.
У меня была аналогичная проблема. Я наслаждался функцией vim omni-completion в течение нескольких лет, используя Windows XP, Python 2.7, gVim 7. Недавно я перешел на новый компьютер под управлением Windows 8.1. Я установил gVim и плагины, которые мне нравятся, и попробовал все. Omni-завершение дало ошибку, сказав, что мне нужна версия vim, скомпилированная с поддержкой Python. На этом этапе я еще не установил Python. Решением было установить Python, а затем повторно установить vim. Сейчас работает Omni-conpletion. Возможно, порядок установки имеет значение.
Когда я набрал :version
, он показал, что мой Vim не был скомпилирован с Python. Возможно, потому, что в то время у меня не было Python (32-бит?).
Я установил 32-битный Python, как предполагалось, но переустановка Vim казалась необходимой.
После прочтения вышеизложенного, я могу подтвердить, что на Win8.1 это имеет значение для заказа, который вы устанавливаете (для меня это было наименее). У меня был 32-битный VIM 7.4, установленный в течение нескольких месяцев, а затем попытался добавить Python и не мог этого сделать. Left Python 2.7.9 установил и удалил/переустановил VIM, и теперь он работает.
Загрузите файл под названием "Исполняемый файл OLE GUI"
После всех ответов в этом потоке безуспешно, для меня работали следующие (Win10, Python 2.7 32bit, gvim 7.4 32bit):
Добавьте следующие скрипты в ваш .vimrc
set pythonthreedll = python36.dll
Большая часть дистрибутива vim в Windows загружает python динамически, вы должны сообщить vim, что такое dll, и убедиться, что python36.dll
находится в PATH
среды PATH
.
Вы хотите включить подсветку синтаксиса
поместите syntax on
в свой vimrc (формат файла vimrc будет таким же в linux/windows или любой другой ОС)
Vim также поддерживает автоопределение, если вы хотите включить автоматический отступ для python, посмотрите на это руководство здесь
Ключом, позволяющим включить автоопределение, является включение в vimrc
autocmd BufRead,BufNewFile *.py syntax on
autocmd BufRead,BufNewFile *.py set ai
autocmd BufRead *.py set smartindent cinwords=if,elif,else,for,while,with,try,except,finally,def,class