Vim PHP omni completion
2022-08-30 14:00:05
我试图在Vim中正确完成PHP。现在,当我做一个然后点击时,我希望omnicompletion返回类中的所有函数。$blog = new Blog(); $blog->
CTRL+X CTRL+O
Blog
相反,它返回整个项目的所有函数。我已经为我的项目构建了ctag,如下所示:ctags -R *
有没有办法使自动完成上下文感知?
我试图在Vim中正确完成PHP。现在,当我做一个然后点击时,我希望omnicompletion返回类中的所有函数。$blog = new Blog(); $blog->
CTRL+X CTRL+O
Blog
相反,它返回整个项目的所有函数。我已经为我的项目构建了ctag,如下所示:ctags -R *
有没有办法使自动完成上下文感知?
catchmeifyoutry的答案通过添加注释(例如在您使用omnicomplete的行之前)指出了一个解决方法,但是这很麻烦,并且在编写注释所需的时间内,您还不如自己编写函数名称。/* @var $myVar myClass */
这是一个 Vim 脚本:phpComplete
您仍然需要为类生成一个标签文件,但是您可以在文件中使用omni complete,就像这样(从脚本页面上的描述中修改);
此修补程序允许进行文件内检查,因此您不需要注释。
$blog = new Blog; ... $blog->Blah(); // <-- complete without comment
它还允许支持单例实例化:
$instance = Class::getInstance(); $instance->completeMe(); // sweet completion
" 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!