Я использую Debian Jessie и использую текущий vim-nox (с + python -python3). Я с трудом пытаюсь программировать на Python 3, так как я борюсь с дополнением кода Python 3.
YouCompleteMe вообще не поддерживает Python3. jedi-vim поддерживает завершение Python 3, но только если у меня будет опция + python3, если я правильно ее понимаю. Из нескольких постов разработчиков Debian кажется, что компиляция Vim с флагом + python3 на самом деле не работает. Поэтому я остался с плагином режима Python.
Помимо того факта, что режим python кажется не поддерживаемым (см. Открытые запросы на извлечение и последние коммиты) и в настоящее время он имеет огромную ошибку, касающуюся веревки в своей основной ветке, он мешает YouCompleteMe. Я получаю некоторое завершение кода Python 3, но только если я полностью отключаю YouCompleteMe. Добавление в черный список YCM для типов файлов Python или отключение завершения YCM для файлов Python не работает, я получаю предупреждение YCM каждый раз, когда открываю vim.
Итак, мои вопросы:
Как я могу получить автозаполнение Python 3 для работы с текущим дистрибутивом Debian, не отключая YouCompleteMe (который я хочу для других языков программирования)? Почему неподдерживаемый плагин на данный момент является единственным выбором для завершения кода для такого важного языка программирования (Python 3 больше не может считаться новым ...)?
Ответы:
Идеальный способ - получить исходный код Vim и скомпилировать его самостоятельно.
Шаг 1: Для Debian-подобных систем получите необходимые пакеты:
Шаг 2: клонировать исходный код Vim:
Шаг 3: настроить, сделать, установить
Шаг 4: Готово! У вас должна быть огромная версия vim с поддержкой + python3. Он также имеет поддержку + буфера обмена, так что вы можете использовать его с системным буфером обмена и версию графического интерфейса.
Конечно, вы можете удалить ненужные флаги настройки или добавить их. У YouCompleteMe есть довольно длинная вики, посвященная объяснению того, как собрать Vim из исходного кода здесь.
источник
:echo has('python3')
я получаю0
, тогда как:echo has('python')
возвращается1
. У меня есть следующие параметры в моем .vimrc, но они не помогают:let g:ycm_path_to_python_interpreter = '/usr/bin/python3 let g:ycm_filetype_specific_completion_to_disable = { 'python' : 1 } let g:ycm_filetype_blacklist = { 'python' : 1 }
.apt-get build-dep vim
.dsc
файл, указанный на боковой панели. Я полагаю, что все предложенные вами пакеты, кромеmercurial
как, прямо или транзитивно перечислены какBuild-Depends
. В частности,libgnomeui-dev
вероятно, отвечает за многие из этих зависимостей.Теперь у меня хорошо работает jedi-vim с поддержкой + python3 в vim. В добавили следующую опцию в моем .vimrc:
let g:jedi#force_py_version = 3
.источник
Пишу это больше как примечание для себя, чем что-либо, но, возможно, это будет полезно для некоторых: в Arch Linux вы можете установить версию vim, скомпилированную с python3:
Введите y, и это заменит существующий vim на vim с включенным python3.
Затем:
установит автозаполнение, для python3.
источник
Уже пару недель YouCompleteMe поддерживает завершение Python3 с использованием Jedi через оболочку JediHTTP. Устанавливайте только YouCompleteMe (не нужно устанавливать jedi-vim) в соответствии с инструкциями по установке и добавьте следующую строку в свой
.vimrc
:Это заставляет YCM использовать Jedi с Python3 (по умолчанию используется Jedi с тем же интерпретатором Python, который используется сервером ycmd, который является Python2).
Это работает независимо от того, скомпилирован ли ваш Vim с
+python3
флагом или без него - вы получаете автозаполнение Python3 (и поиск документации и многое другое).источник
Я нахожусь в положении, когда мне приходится постоянно переключаться между двумя проектами Python, один из которых использует Python 2, а другой Python 3. Как вы заметили, вы не работаете с Python 3.
Сначала я скомпилировал дополнительную версию vim с python 3 (которую я начинаю с vim3) и использую vundle в качестве менеджера плагинов.
В моем .vimrc у меня есть:
Он отключает youcompleteme, когда я запускаю vim3, но вместо этого у меня есть автозаполнение jedi-vim. Я только начал его использовать, и в этом сообщении в блоге говорится, что они несовместимы друг с другом, но для меня автозаполнение работает в обоих направлениях, работает переход к определению джедая, работает pylint в режиме python и ни один плагин не жалуется на запуск. Пока все хорошо :)
источник
Использование deoplete и deoplete-джедай , если вы открыты для neovim. По моему опыту это работает довольно хорошо, где у YCM есть немного неприятностей.
источник