首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vim for php框架

Vim for php框架
EN

Stack Overflow用户
提问于 2015-10-29 10:43:11
回答 3查看 5.6K关注 0票数 8

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

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

  • 我不能正常工作

我已经尝试过通过google找到的所有东西:

-phpcomplete:尽管在我的其他项目中工作得很好,但似乎对作曲家很生气。不识别框架的外观或常用方法。

-ctag:在某些方法上有所帮助,但仍会给全貌带来麻烦。

-phpcomplete-extended和phpcomplete-扩展到laravel:作者不再维护这个插件了(逻辑上的,因为框架变化太快),所以不再工作了。

-PIV,使用standart phpcomplete,所以同样的问题。

-padawan.php我无法让它起作用,IMHO文件记录不全

是否有任何vim用户能够正确地获得全功能?我开始认为我应该从vim开始,因为它还没有为这些新技术做好准备:

针对AppServiceProvider文件的Grep tags

AppServiceProvider app/Providers/AppServiceProvider.php /^class AppServiceProvider扩展ServiceProvider$/;c命名空间: Furbook\Providers应用程序/Providers/AppServiceProvider.php /^namespace Furbook\Providers;$/;“n boot app/Providers/AppServiceProvider.php /^公共函数引导(/^namespace)$/;”f类:Furbook提供者:AppServiceProvider注册应用程序/Providers/AppServiceProvider.php /^公共功能寄存器($/);f类:Furbook\Provider:

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-11-01 12:30:59

这是我最关心的问题之一,以下是我最喜欢的选择:

  1. Phpactor。我目前的选择,工作相当好,它的主要开发是非常活跃的。速度快,有很多重构工具。很适合作曲家的作品。
  2. ctagI使用完全式ctags (修补为php),但仍然没有为外观自动完成,我用Laravel 5 IDE辅助发电机解决了这个问题。其思想是首先为外观生成一个带有类和方法的_ide_helper.php文件,然后创建标记。

我还在vimrc中创建了一个函数,这样就可以自动生成标记。

代码语言:javascript
复制
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()
  1. eclim

-安装月食,不要使用eclipse,最好直接卸载

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

-为了完成完整的代码完成,更改模型以扩展Eloquent而不是Model

--插件YouCompleteMe (您可以尝试其他任何一种)

  1. PHP 它比ctag更好、更自动化。

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

插头‘roxma/nvim-完成-管理器’ “(可选) 插头'roxma/nvim-cm-tern',{'do':'npm安装‘}“ “(可选)语言服务器协议框架 插入'autozimu/LanguageClient-neovim',{ 'do':':UpdateRemotePlugins‘}“ “(可选) php通过LanguageClient-neovim完成 插件‘roxma/LanguageServer neovim’,{'do':'composer install & composer run&composer run-script解析-stubs‘}

如果有人想知道更多信息,可以在github查看我的病毒c

票数 6
EN

Stack Overflow用户

发布于 2016-05-18 09:59:17

谈到关于文档的padawan.php,我还没有花足够的时间让它或多或少地有用,但是安装padawan不应该那么困难:

  1. 通过padawan.php安装composer global require mkusher/padawan
  2. 配置您的$PATH
  3. 安装padawan.vim
  4. 为项目生成索引

我不确定Laravel项目是否会开箱即用,还是您仍然需要ide助手,但是一般的php程序应该工作得很好。

票数 2
EN

Stack Overflow用户

发布于 2015-10-30 11:56:33

免责声明:我不是PHP程序员,我对PHP一无所知。

首先,如果自动完成机制对您的工作至关重要,那么您可能应该为您正在使用的编程语言选择合适的IDE。Vim包括一个用于自动完成的框架,这并不意味着它是为所有受支持的语言实现的。而且,即使有一个全面完成功能可用,你的里程可能会有所不同,取决于它是如何发展。

从我可以收集到的其他问题(特别是Vim PHP全补)来看,最好的PGP完成插件是完全式,所以我已经安装了它。

然后,我从这里下载了laraval,并使用以下命令运行ctag 5.9~svn20110310 (可在Debian中找到):

代码语言:javascript
复制
ctags -R --filter-terminator=php

使用以下测试文件:

代码语言:javascript
复制
<?php
  $example = new AppServiceProvider();
  $example->
?>

当我按i_ctrl-x_ctrl-o时,我得到以下建议:

代码语言:javascript
复制
boot(     f )
register( f )

正如可以看到的那样,没有长长的方法列表。

我还尝试使用通用Ctag,其中包括php完备插件所需的修补程序,但为了使其正常工作,我必须使用以下语法:

代码语言:javascript
复制
ctags -R --fields=+aimS-s --filter-terminator=php .

也就是说,需要额外的-s。也许您可以在这里工作,并在您的环境中更详细地测试这一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33412045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档