我正在为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 回答
我也尝试让php自动完成在vim中更好地工作 . 我使用了phpcomplete.vim插件,但发现在使用多个标记文件时存在一个错误(在大多数vimrc配置中并不常见) . 在这种情况下,它只搜索第一个标记文件来解析class-filename,然后回退到标准完成(显示一个很长的非范围感知列表)
但是,我已经分叉插件并修复了错误 . 对我来说,它现在很棒:https://github.com/sebastiankessler/phpcomplete.vim
如果您的项目是作曲家项目,那么请查看我的phpcomplete-extended插件 . 对于Symfony2土地Laravel项目也分别检查phpcomplete-extended-symfony和phpcomplete-extended-laravel插件 .
什么是理想的效果?你能指望什么?你得到了什么? Vim没有“自动完成”功能:它自己的完成品牌被称为“全向完成”并且根本不是自动的 .
我've been using the phpComplete script linked in one of the other question'的答案与
ctags
一起没有问题很长一段时间了 . 事实上,我写了下面的例子,认为我正在使用它,但我忘了几周前我已经删除了一堆脚本和插件,包括phpComplete.vim
.所以下面的库存Vim 7.3 / Exuberant Ctags 5.8的效果非常好 .
随着 a.php :
和 b.php 中指示的光标
<C-x><C-o>
给了我这些选择:我没有得到一英里长的内置函数列表,我甚至没有私有方法 .
Padawan with Deoplete是在Neovim中拥有强大的PHP自动完成功能的绝佳解决方案 . 对于Vim,您可以使用Neocomplete而不是Deoplete .
我写了一篇文章如果有人感兴趣的话Vim PHP IDE :)