php автозаполнение с vim - PullRequest
       1

php автозаполнение с vim

4 голосов
/ 26 марта 2012

Я ищу решение для автозаполнения PHP для VIM. Я уже был в этой теме: Vim PHP всевозможное завершение но это не работает для меня. Я генерирую файл тегов с помощью этого скрипта 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, обильные Ctags 5.8

спасибо

Ответы [ 4 ]

4 голосов
/ 07 ноября 2012

Я также пытался улучшить работу автозавершения php в vim. Я использовал плагин phpcomplete.vim, но обнаружил, что при использовании более одного файла тега была ошибка (что не является необычным в большинстве конфигураций vimrc). В этом случае он просто ищет первый файл тегов для разрешения имени файла класса, а затем возвращается к стандартному завершению (показывая длинный длинный список, не связанный с областью действия)

Тем не менее, я раздвоил плагин и исправил ошибку. Для меня это прекрасно работает сейчас: https://github.com/sebastiankessler/phpcomplete.vim

3 голосов
/ 17 октября 2013

Если ваши проекты являются проектами композитора, тогда попробуйте мой phpcomplete-extended плагин. Для проектов Symfony2 land Laravel также проверьте плагины phpcomplete-extended-symfony и phpcomplete-extended-laravel соответственно.

0 голосов
/ 04 декабря 2017

Padawan с Deoplete - отличные решения для надежного автозаполнения PHP в Neovim.Для Vim вы можете использовать Neocomplete вместо Deoplete.

Я написал статью о том, как создать Vim PHP IDE , если кому-то это интересно:)

0 голосов
/ 26 марта 2012

Какой будет желаемый эффект? Что вы ожидаете? Что вы получаете? В Vim нет функции «автозаполнения»: его собственный бренд завершения называется «омни завершением» и вообще не является автоматическим.

Я уже довольно давно использую скрипт 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
?>

<C-x><C-o> дает мне этот выбор:

say( f
MyClass( f

Я не получаю список встроенных функций длиной в милю и даже не использую частные методы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...