Автозаполнение Vim для Python
Я пытаюсь включить функцию автозаполнения в Vim. Я использовал omnicompletion Vim, а также Pydiction. Но в обоих случаях это сообщение появляется:
Вскрытие (^ O ^ N ^ P) Шаблон не найден
Я пробовал Vim Omnicompletion с Python просто не работает. Но это не помогает. Есть ли обходной путь?
Ответы
Ответ 1
Попробуйте Jedi! Там плагин Vim на https://github.com/davidhalter/jedi-vim.
Он работает намного лучше, чем что-либо еще для Python в Vim. У него даже есть поддержка для переименования, goto и т.д. Лучшая часть, вероятно, заключается в том, что он действительно пытается понять ваш код (декораторы, генераторы и т.д. Просто посмотрите список функций).
Ответ 2
Это может быть хорошим вариантом, если вы хотите завершить python, а также другие языки. https://github.com/Valloric/YouCompleteMe
Завершение python - это jedi, основанный так же, как jedi-vim.
Ответ 3
Я попробовал pydiction (не работал у меня) и нормальный omnicompletion (слишком ограниченный). Я посмотрел на Джедаев, как предложил, но обнаружил, что это слишком сложно настроить. Я нашел python-mode, что в итоге удовлетворило мои потребности. Спасибо @klen.
Ответ 4
AFAIK существует три варианта, каждый из которых имеет свои недостатки:
- youcompleteme: недружелюбно установить, но работает хорошо, если вам удастся заставить его работать. Однако python3 не поддерживается.
- jedi-vim: самое крутое имя, но разбивает отменить историю.
- python-mode делает намного больше автозаполнения: свертывание, проверка синтаксиса, выделение. Лично я предпочитаю сценарии, которые делают 1 вещь хорошо, поскольку их легче управлять (и заменять). В отличие от двух других опций он использует rope вместо jedi для автозаполнения.
Python 3 и история отмены (gundo!) являются обязательными для меня, поэтому варианты 1 и 2 отсутствуют.
Ответ 5
В это время youcompleteme также выполняет Python3.
Ответ 6
Я столкнулся с этим на своем Mac с помощью MacPorts vim с + python. Проблема заключалась в том, что MacPorts vim будет связываться только с python 2.5 с + python, в то время как мои расширения были установлены под python 2.7. Установка расширений с помощью pip-2.5 решила его.