如何通过ctags在基于部分匹配的vim中自动完成

如何通过ctags在基于部分匹配的vim中自动完成,vim,ctags,exuberant-ctags,Vim,Ctags,Exuberant Ctags,例如: 在另一个目录中的文件中,我有一个由以下内容定义的函数: def _generator_function_1(self): passs def test_generI 在我当前目录的文件中,我键入了以下内容: def _generator_function_1(self): passs def test_generI 其中I表示我的光标位置 我想使用vim的自动完成功能(即通过^n或^p)自动完成函数定义,以测试发电机功能\u 1。有没有一种方法可以将vim自动完成配置

例如:

在另一个目录中的文件中,我有一个由以下内容定义的函数:

def _generator_function_1(self):
   passs
def test_generI
在我当前目录的文件中,我键入了以下内容:

def _generator_function_1(self):
   passs
def test_generI
其中
I
表示我的光标位置

我想使用vim的自动完成功能(即通过
^n
^p
)自动完成函数定义,以
测试发电机功能\u 1
。有没有一种方法可以将vim自动完成配置为不基于完整前缀的匹配?或者,CTAG中是否有一种方法可以基于关键字而不是完整的函数定义生成标记

编辑: 为了澄清,我特别想知道是否存在基于关键字的自动完成。我已经设置了标签自动完成功能,因此如果我键入
“\u gen”
,那么
^n
将完成,并为我提供
“\u generator\u function\u 1”
。然而,在我的示例中,正是因为字符串的前缀是
“test”
“test\u gener”
,因为开头键入的单词不会导致任何自动完成建议。所以我想知道这是否能以某种方式实现

  • Vim没有“自动完成功能”。它只有“完成”,没有“自动完成”。你需要一个“自动完成”插件
  • 不,如果没有一些严肃的脚本,就无法获得你想要的行为。请参见
    :帮助完成功能

  • 您需要在完整选项中包含标记。使用:
    set complete+=t
    执行此操作。请参阅
    :帮助“完成”
    包括已启用的完成标记。我应该澄清一下。在这种情况下,如果我以“\u gen”开始文本,我将能够完成字符串,成为“\u generator\u function\u 1”。因为我是以“test\u gener”开头的,所以我无法自动完成,因为我假设没有以“test\u gener”开头的标记(尽管有以“\u gener”开头的标记)。这就是为什么我想知道是否存在这种基于关键字的自动完成。据我所知,默认的
    ^n
    ^p
    命令不支持模糊搜索完成。您需要一个外部插件(例如)为了完成模糊搜索。有趣的是,我已经使用YCM多年了,我刚刚决定卸载它,因为我认为Vim内置的自动完成功能足以满足我的大部分需求。知道这一点很好!我仍然在想,在使用丰富的CTAG为这个matte生成标记时,是否有一种通过关键字解析的方法r、 或者用vim的全向补全。。。