我正在编辑一个包含几个方法的类的简单PHP文件,如果$bar
是该类的实例,并且我键入
$bar->
ctrlxctrlo
我会得到一个弹出窗口,其中包含许多方法(内置方法),除了我的类中定义的方法和在ctags列表中存在的方法。如何避免显示所有这些外部方法,只保留在我的类中定义的方法?
我正在编辑一个包含几个方法的类的简单PHP文件,如果$bar
是该类的实例,并且我键入
$bar->
ctrlxctrlo
我会得到一个弹出窗口,其中包含许多方法(内置方法),除了我的类中定义的方法和在ctags列表中存在的方法。如何避免显示所有这些外部方法,只保留在我的类中定义的方法?
我相信你已经看过了VIM文档(:help ft-c-omni
),其中提到:
当在没有"."或"->"的名称后使用CTRL-X CTRL-O时,它将直接从标签文件中完成。这适用于任何标识符,包括函数名。如果您想完成一个本地变量名称,而该名称不出现在标签文件中,请改用CTRL-P。
当在具有"."或"->"的内容后使用CTRL-X CTRL-O时,Vim将尝试识别变量的类型并找出其成员。这意味着只有对该变量有效的成员才会列出。
当成员名称已经完成时,CTRL-X CTRL-O将为复合类型添加"."或"->"。
如果我理解正确,内置功能最多只允许您使用CTRL-P并匹配本地变量名称,从而完全绕过TAGS文件。
你真正想要的是一个特定于你当前正在工作的翻译单元(头文件/cpp文件)的TAGS文件。以下是我尝试解决这个问题时执行的步骤:
CTRL-X CTRL-O
omni-completion。如果必要,可以还原为原始的 TAGS。此外,我认为您希望能够直接从 VIM 调用第一步中的脚本,因为您会频繁地更改当前的翻译单元。
希望这能让您朝着正确的方向前进,如果需要实现上述功能,我很乐意提供帮助 =)。