php 使用 vim 自动完成

问题描述 投票:0回答:4

我正在寻找 vim 的 php 自动完成解决方案。我已经在这个线程了: 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、Exuberant Ctags 5.8

谢谢

php vim autocomplete
4个回答
4
投票

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

但是,我已经分叉了该插件并修复了该错误。对我来说,现在效果很好: https://github.com/sebastiankessler/phpcomplete.vim


3
投票

如果您的项目是作曲家项目,请查看我的 phpcomplete-extended 插件。对于 Symfony2 和 Laravel 项目,还分别检查 phpcomplete-extended-symfonyphpcomplete-extended-laravel 插件。


2
投票

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

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


1
投票

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

我没有得到一长串的内置函数列表,我什至没有得到私有方法。

© www.soinside.com 2019 - 2024. All rights reserved.