viv*_*ino 8 php vim frameworks ctags laravel
我已经花了两天时间尝试用VIM为一个框架创建一个良好的工作环境,在这种情况下,laravel.
一切都很完美,但有一个非常重要的问题:
我尝试过通过谷歌找到的所有内容:
- 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
这是我最关注的问题之一,以下是我的首选方案:
Phpactor.我目前的选择,效果很好,它的主要开发人员非常活跃.快速并且有很多重构工具.非常适合作曲家项目.
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)
- 安装eclipse,不要使用eclipse安装程序,直接更好地解压缩
- 安装eclim,使用eclim安装程序.
- 要完成代码完成,请将模型更改为扩展Eloquent而不是Model
- 和插件YouCompleteMe(你可以尝试任何其他)
尽管自动完成仍然比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