gpt4 book ai didi

php - 在 vim 中调试慢速 php omnicomplete

转载 作者:可可西里 更新时间:2023-10-31 23:26:20 24 4
gpt4 key购买 nike

我在一个大型项目中使用带有 php omnicompletion 的 vim。我有一个 ctags 文件并使用:

au FileType python set omnifunc=pythoncomplete#Complete
au FileType php set omnifunc=phpcomplete#CompletePHP
au FileType javascript set omnifunc=javascriptcomplete#CompleteJS
au FileType html set omnifunc=htmlcomplete#CompleteTags
au FileType css set omnifunc=csscomplete#CompleteCSS
au FileType xml set omnifunc=xmlcomplete#CompleteTags

set complete=""
set complete+=.
set complete+=k
set complete+=b
set complete+=t

在我的配置中

目前 omni complete 将在 5 秒以上后完成 php 内置插件。它不会完成我的标签列表中的任何内容,但是 <C-p>将完成标签列表中的项目。我原以为 complete=t 会检查标签文件。

通过 <C-p> 完成标记非常快,所以不确定是什么让我的 omni 完成如此缓慢。

如果我在我的主目录和这个项目目录中编辑一个新的 .php 文件,则 omni complete 内置的 php 很快。

感谢任何提示/帮助正在调试它。理想情况下,我希望 omni 同时完成内置和 ctags 完成,这似乎是由 complete=t 文档建议的。

最佳答案

Omnicompletion 和 <C-p>完成是完全独立的。 complete选项仅影响通过 <C-p> 完成/<C-n><C-x><C-l> .如果您希望 omnicompletion 也尝试使用标签,那么您需要修改完成函数来这样做。

就 PHP 而言,它确实考虑了标签,但这只是它所做工作的一部分。 omn​​icompletion 比标签的完成慢的原因是它更复杂。在标记文件中搜索与光标之前的内容匹配的单词与解析当前缓冲区的上下文、查找可以在其中完成的所有有效类型的信息、将其限制为与光标之前的文本匹配的内容以及呈现那个。

关于php - 在 vim 中调试慢速 php omnicomplete,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2200842/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com