首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vim PHP全自动补全

Vim PHP全自动补全
EN

Stack Overflow用户
提问于 2009-08-03 21:58:21
回答 9查看 24.4K关注 0票数 33

我正在尝试在Vim中实现PHP自动补全功能。现在,当我执行$blog = new Blog(); $blog->,然后点击CTRL+X CTRL+O时,我希望omnicompletion返回Blog类中的所有函数。

相反,它返回整个项目的所有函数。我为我的项目构建了ctag,如下所示:ctags -R *

有没有办法让自动补全能感知上下文?

EN

回答 9

Stack Overflow用户

发布于 2010-10-13 09:06:39

catchmeifyoutry's answer指出了一种变通方法,在您使用omnicomplete的行前添加一个注释,例如/* @var $myVar myClass */,但是这很麻烦,而且对于编写注释所需的时间来说,您还不如自己编写函数名。

解决方案: phpComplete

这是一个Vim脚本:phpComplete

您仍然需要为您的类生成一个标记文件,但是您可以在该文件中使用omni complete,如下所示(根据脚本页面上的描述进行修改);

此修补程序允许文件内检查,因此您不需要注释。

$blog =新博客;... $blog->Blah();// <--完整无注释

它还允许支持单例实例化:

$instance =类::getInstance();$instance->completeMe();//甜蜜完成

票数 17
EN

Stack Overflow用户

发布于 2009-08-04 01:10:32

代码语言:javascript
复制
" Assuming Vim 7 (full version) is installed,
"   adding the following to your ~/.vimrc should work.

filetype plugin on
au FileType php set omnifunc=phpcomplete#CompletePHP

" You might also find this useful
" PHP Generated Code Highlights (HTML & SQL)                                              

let php_sql_query=1                                                                                        
let php_htmlInStrings=1

" Hope this helps!

(通过http://www.linuxquestions.org/questions/linux-software-2/vim-omin-completion-for-php-621940/#post3155311)

票数 9
EN

Stack Overflow用户

发布于 2010-02-23 15:45:22

只有当标记文件同时包含类定义和变量声明时,Omnicompletion才会起作用。

简单的解决方案

通常,这意味着在尝试$blog-> <C-X><C-O>之前,您需要在class Blog { ... }$blog = new Blog();部件之后保存并(重新)生成标记文件。这是因为PHP omni-complete函数将在标记文件中查找$blog变量的类声明。

(顺便说一句,如果您在缓冲区中打开了标记文件,请在重新生成它后重新加载它。)

替代

vim文档(:help ft-php-omni)还定义了一种方法,它不需要在标记文件中索引变量,而是使用前一行中的特定注释:

代码语言:javascript
复制
/* @var $myVar myClass */
$myVar->

但是,类定义仍然需要在标记文件中,并且每次要使用omni-complete时都需要注释。所以输入一个新的PHP文件仍然不会给你一个好的全补全功能:(

只是一个思想的

也许可以只为未保存的缓冲区动态生成一个临时标记文件(如taglist插件),并允许omni-complete使用它??不过我不是一个很棒的vim黑客。

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

https://stackoverflow.com/questions/1224838

复制
相关文章

相似问题

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