0

使用文件类型时,c我只能从所有打开的缓冲区(使用 supertab)中获得建议。但是当我Tab在 c 文件类型中进行单词完成时,我会从系统范围的 C 头文件中得到建议,这些建议对我来说是无用的(特别是当建议的数量更多需要导航时)

我认为我的任何插件都不会干扰这一点。我不想要头文件的建议。请问,我该怎么办?

4

1 回答 1

2

有一些默认插件会干扰。该选项'complete'选择您感兴趣的完成源。可能的完成源是:

  1. 当前缓冲区
  2. 来自其他窗口的缓冲区
  3. 缓冲区列表中的其他已加载缓冲区
  4. 缓冲区列表中的已卸载缓冲区
  5. 不在缓冲区列表中的缓冲区
  6. 带有'dictionary'选项的文件
  7. 当前有效的拼写检查(参见spell
  8. 使用“同义词库”选项给出的文件
  9. 选项中给出的附加字典文件,'copmplete'其行为类似于'dictionary''thesaurus'
  10. 当前和包含的文件
  11. 标签

默认设置是:

  1. 当前缓冲区
  2. 其他窗口中的缓冲区
  3. 其他加载的缓冲区
  4. 卸载缓冲区
  5. 标签
  6. 包含的文件

最后一个或倒数第二个项目干扰了您的使用。根据选项搜索包含的文件

  • 'include'定义查找包含指令的模式。默认值适用于 C 文件,因此这种完成模式在 C(和 C++)文件中启动,在其他任何地方都没有。
  • 'path'定义搜索包含文件的位置。检查你是否/usr/include有。
  • 'tags'定义由相对或绝对路径使用的“标签”文件列表。你可能在/usr/include/tags那里。

'complete'您可以通过从选项中删除相应的标志或/usr/include'path'和/或/usr/include/tags删除来禁用这些完成'tags'。完成模式是默认的,但路径不应该是(/usr/include/tags是 vi 默认值,但不是 vim 默认值,因此如果您已设置,则不应使用它'nocompatible')。

请注意,标签将始终从所有系统文件完成,因为它使用符号索引,而包含只会从实际(甚至间接)包含的文件中完成。

于 2013-08-30T11:32:05.133 回答