Vim PHP omni completion

2022-08-30 14:00:05

我试图在Vim中正确完成PHP。现在,当我做一个然后点击时,我希望omnicompletion返回类中的所有函数。$blog = new Blog(); $blog->CTRL+X CTRL+OBlog

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

有没有办法使自动完成上下文感知?


答案 1

catchmeifyoutry的答案通过添加注释(例如在您使用omnicomplete的行之前)指出了一个解决方法,但是这很麻烦,并且在编写注释所需的时间内,您还不如自己编写函数名称。/* @var $myVar myClass */

解决方案: php完整版

这是一个 Vim 脚本:phpComplete

您仍然需要为类生成一个标签文件,但是您可以在文件中使用omni complete,就像这样(从脚本页面上的描述中修改);

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

$blog = new Blog;
... 
$blog->Blah(); // <-- complete without comment 

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

$instance = Class::getInstance(); 
$instance->completeMe(); // sweet completion

答案 2
" 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)


推荐