Vim PHP omni completion(Vim PHP 全能完成)
问题描述
我正在尝试在 Vim 中正确地获得 PHP 自动完成功能.现在当我做一个 $blog = new Blog();$blog->
然后点击CTRL+X CTRL+O
我希望omnicompletion 返回Blog
类中的所有函数.
I'm trying to get PHP autocompletion right in Vim. Right now when I do a $blog = new Blog(); $blog->
and then hit CTRL+X CTRL+O
I'd expect omnicompletion to return all the functions in the class Blog
.
相反,它返回整个项目的所有函数.我已经为我的项目构建了 ctags,如下所示:ctags -R *
Instead, it returns all functions for the entire project. I've built ctags for my project like so: ctags -R *
有没有办法让自动完成上下文感知?
Is there any way to make the autocompletion context-aware?
推荐答案
catchmeifyoutry 的回答 通过在您使用 omnicomplete 的行之前添加诸如 /* @var $myVar myClass */
之类的注释来指出解决方法,但是这很麻烦,而且暂时需要写注释,你也可以自己写函数名.
catchmeifyoutry's answer points out a work-around by adding a comment such as /* @var $myVar myClass */
immediately before the line on which you use omnicomplete, however this is cumbersome and for the time it takes to write the comment, you may as well have written the function name yourself.
这是一个 Vim 脚本:phpComplete
It is a Vim script: phpComplete
你仍然需要为你的类生成一个标签文件,但你可以在文件中使用 omni complete,就像这样(从脚本页面的描述中修改);
You will still need a tags file generated for your classes, but you can then use omni complete within the file, like so (modified from the description on the script's page);
此补丁允许进行文件内检查,因此您不需要注释.
This patch allows for in-file checking so you don't need the comment.
$blog = new Blog;
...
$blog->Blah(); // <-- complete without comment
它还允许支持单例实例化:
It also allows support for singleton instantiations:
$instance = Class::getInstance();
$instance->completeMe(); // sweet completion
这篇关于Vim PHP 全能完成的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Vim PHP 全能完成
基础教程推荐
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- 在多维数组中查找最大值 2021-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01