Я ищу php автозаполнение решения для vim. Я уже был в этой теме: Vim PHP omni завершение, но это не работает для меня. Я генерирую файл тегов с помощью этого сценария bash:
#!/bin/bash exec ctags -V -f tags \ -h \".php\" -R \ --exclude=\"\.git\" \ --totals=yes \ --language-force=PHP \ --tag-relative=yes \ --PHP-kinds=+cfiv \ --regex-PHP='/(abstract)?\s+class\s+([^ ]+)/\2/c/' \ --regex-PHP='/(static|abstract|public|protected|private)\s+(final\s+)?function\s+(\&\s+)?([^ (]+)/\4/f/' \ --regex-PHP='/interface\s+([^ ]+)/\1/i/' \ --regex-PHP='/\$([a-zA-Z_][a-zA-Z0-9_]*)/\1/v/' \ kernel/classes/
но автозаполнение не является желательным. Я даже не знаю, загружается ли плагин. так, как я могу увидеть, загружается плагин? (плагин находится под расслоением, я использую патоген, и другие плагины работают). Нужно активировать что-то еще? У меня VIM-Vi IMproved 7.3, Exuberant Ctags 5.8
благодаря
Я также попытался заставить php autocompletion работать лучше в vim. Я использовал плагин phpcomplete.vim, но выяснил, что при использовании нескольких файлов тегов произошла ошибка (что не является чем-то необычным в большинстве конфигураций vimrc). В этом случае он просто ищет первый файл тега для разрешения имени файла-класса и затем возвращается к стандартным завершением (показывая длинный список, не содержащий сведений о масштабах)
Тем не менее, я разветвил плагин и исправил ошибку. Для меня это прекрасно работает сейчас: https://github.com/sebastiankessler/phpcomplete.vim
Если ваши проекты являются композиторским проектом, тогда проверьте мой плагин с расширением phpcomplete . Для проектов Symfony2 Laravel также проверяют плагины phpcomplete-extended-symfony и phpcomplete-extended-laravel соответственно.
Каким будет желаемый эффект? Что вы ожидаете? Что вы получаете? У Vim нет функции «автозаполнения»: собственный бренд завершения называется «omni completion» и не является автоматическим вообще.
Я использовал сценарий phpComplete, связанный в одном из ответов другого вопроса, в сочетании с ctags
без проблем в течение некоторого времени. На самом деле я написал следующие примеры, думая, что я его использую, но я забыл, что несколько недель назад я удалил кучу скриптов и плагинов, включая phpComplete.vim
.
Таким образом, следующее очень хорошо работает с запасом Vim 7.3 / Exuberant Ctags 5.8.
С a.php
:
<?php class MyClass { public function MyClass(argument) { echo 'Hello.'; } private function secret() { echo 'Shhhh…'; } public function say() { echo 'what?'; } } ?>
и курсор, как указано в b.php
<?php include 'a.php'; $example = new MyClass(); $example->| //cursor here ?>
<Cx><Co>
дает мне следующие варианты:
say( f MyClass( f
Я не получаю список функций, встроенных в милю, и я даже не получаю частные методы.
Padawan с Deoplete – отличные решения для обеспечения надежной автозаполнения PHP в Neovim. Для Vim вы можете использовать Neocomplete вместо Deoplete.
Я написал статью, как сделать Vim PHP IDE, если кому-то интересно 🙂