如何在'c'文件类型中抑制意外的单词补全建议?

时间:2013-08-30 11:03:54

标签: vim

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

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

1 个答案:

答案 0 :(得分:2)

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

  1. 当前缓冲区
  2. 来自其他窗口的缓冲区
  3. 缓冲区列表中的其他已加载缓冲区
  4. 缓冲区列表中的已卸载缓冲区
  5. 不在缓冲区列表中的缓冲区
  6. 使用'dictionary'选项
  7. 指定的文件
  8. 当前有效的拼写检查(请参阅spell
  9. 使用'thesaurus'选项
  10. 提供的文件
  11. 'copmplete'选项中提供的其他词典文件,其行为类似于'dictionary''thesaurus'
  12. 当前和包含的文件
  13. 标记
  14. 默认设置为:

    1. 当前缓冲区
    2. 在其他窗口中缓冲
    3. 其他已加载的缓冲区
    4. 卸载缓冲区
    5. 代码
    6. 包含文件
    7. 上一个或倒数第二个项目会干扰您的使用。根据选项

      搜索包含的文件
      • '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',则不应使用它。

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