用vim进行php自动完成

时间:2012-03-25 20:22:54

标签: php vim autocomplete

我正在为vim寻找一个php自动完成解决方案。我已经在这个线程: Vim PHP omni completion 但它对我不起作用。 我使用这个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

感谢

4 个答案:

答案 0 :(得分:4)

我也试过让vin自动完成在vim中运行得更好。我使用了phpcomplete.vim插件,但发现在使用多个标记文件时存在一个错误(在大多数vimrc配置中并不常见)。 在这种情况下,它只搜索第一个标记文件以解析类文件名,然后回退到标准完成(显示一个很长的非范围感知列表)

然而,我已经分叉插件并修复了错误。对我来说,它现在很棒: https://github.com/sebastiankessler/phpcomplete.vim

答案 1 :(得分:3)

如果你的项目是作曲家项目,那么请查看我的phpcomplete-extended插件。对于Symfony2土地Laravel项目也分别签出phpcomplete-extended-symfonyphpcomplete-extended-laravel插件。

答案 2 :(得分:0)

期望的效果是什么?你能指望什么?你得到了什么? 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

我没有获得一英里长的内置函数列表,我甚至没有私有方法。

答案 3 :(得分:0)

带有Padawan

Deoplete是在Neovim中拥有强大的PHP自动完成功能的绝佳解决方案。对于Vim,您可以使用Neocomplete代替Deoplete。

如果有人有兴趣,我写了一篇如何制作Vim PHP IDE的文章。)

相关问题