用于php框架的Vim

viv*_*ino 8 php vim frameworks ctags laravel

我已经花了两天时间尝试用VIM为一个框架创建一个良好的工作环境,在这种情况下,laravel.

一切都很完美,但有一个非常重要的问题:

  • 我不能让omnicomplete正常工作

我尝试过通过谷歌找到的所有内容:

- phpcomplete:尽管我的其他项目运作良好,但似乎对作曲家感到生气.不承认外观或框架的常用方法.

- ctags:帮助一些方法,但仍然是一个混乱的omnicompletion.

- 用于laravel的phpcomplete-extended和phpcomplete-extended:作者不再维护这个插件(逻辑,因为框架变化如此之快)所以不再工作了.

- PIV,使用标准的phpcomplete,所以同样的问题.

- padawan.php我无法让它工作,恕我直言,记录不清楚

是否有任何vim用户可以设法正确地获得omnicompletion功能?我开始认为我应该从vim转移,因为它还没有为这些新技术做好准备:'(

在此输入图像描述

Grep AppServiceProvider对tags文件:

AppServiceProvider app/Providers/AppServiceProvider.php/^ class AppServiceProvider扩展ServiceProvider $ /;"c命名空间:Furbook\Providers Furbook\Providers app/Providers/AppServiceProvider.php/^ namespace Furbook\Providers; $ /;" n boot app/Providers/AppServiceProvider.php/^ public function boot()$ /;"f class:Furbook\Providers :: AppServiceProvider register app/Providers/AppServiceProvider.php/^ public function register()$ /;" f class:Furbook\Providers :: AppServiceProvider

viv*_*ino 6

这是我最关注的问题之一,以下是我的首选方案:

  1. Phpactor.我目前的选择,效果很好,它的主要开发人员非常活跃.快速并且有很多重构工具.非常适合作曲家项目.

  2. ctags 我使用phpcomplete和ctags(修补了php),但仍然没有自动完成外观,我用Laravel 5 IDE Helper Generator解决了这个问题.我们的想法是先生成一个_ide_helper.php包含外观类和方法的文件,然后创建标签.

我还在我的vimrc中创建了一个函数,所以我可以自动生成标签.

function! GenTags()
    if isdirectory("./vendor")
    echo '(re)Generating framework tags'
    execute "!php artisan ide-helper:generate"
    echo '(re)Generating tags'
    execute "!ctags -R --filter-terminator=php"
    else
    echo 'Not in a framework project'
    if filereadable("tags")
    echo "Regenerating tags..."
    execute "!ctags -R --filter-terminator=php"
    else
    let choice = confirm("Create tags?", "&Yes\n&No", 2)
    if choice == 1
    echo "Generating tags..."
    execute "!ctags -R --filter-terminator=php"
    endif
    endif
    endif

    :endfunction

    command! -nargs=* GenTags call GenTags()
GenTags()
Run Code Online (Sandbox Code Playgroud)
  1. eclim

- 安装eclipse,不要使用eclipse安装程序,直接更好地解压缩

- 安装eclim,使用eclim安装程序.

- 要完成代码完成,请将模型更改为扩展Eloquent而不是Model

- 和插件YouCompleteMe(你可以尝试任何其他)

  1. PHP语言服务器 它比ctags更好,更自动化.

尽管自动完成仍然比eclipse(eclim)差一些,但Php语言服务器是在PHP上开发的,这意味着许多PHP用户可以为项目做出贡献,并且它非常活跃和改进.

插件'roxma/nvim-completion-manager'

"(可选)javascript

插上'roxma/nvim-cm-tern',{'做':'npm install'}"

"(可选)语言服务器协议框架

插件'autozimu/LanguageClient-neovim',{'do':':UpdateRemotePlugins'}"

"(可选)通过LanguageClient-neovim完成php

插件'roxma/LanguageServer-php-neovim',{'do':'composer install && composer run-script parse-stubs'}

如果有人想知道更多可以在github上检查我的vimrc