Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim 如何在';c';文件类型?_Vim - Fatal编程技术网

Vim 如何在';c';文件类型?

Vim 如何在';c';文件类型?,vim,Vim,当使用非c的文件类型时,我只从所有打开的缓冲区(使用supertab)获得建议。但当我点击Tab在c文件类型中完成单词补全时,我从系统范围的c头文件中得到了一些建议,这些建议对我来说是无用的(特别是当建议的数量更多时) 我不认为我的任何插件会干扰这一点。我不想要来自头文件的建议。请问,我能做什么?有一些默认插件。选项'complete'选择您感兴趣的完成源。可能的措施包括: 电流缓冲器 来自其他窗口的缓冲区 缓冲区列表中的其他已加载缓冲区 已卸载缓冲区列表中的缓冲区 不在缓冲区列表中的缓冲区 使

当使用非
c
的文件类型时,我只从所有打开的缓冲区(使用supertab)获得建议。但当我点击Tab在c文件类型中完成单词补全时,我从系统范围的c头文件中得到了一些建议,这些建议对我来说是无用的(特别是当建议的数量更多时)


我不认为我的任何插件会干扰这一点。我不想要来自头文件的建议。请问,我能做什么?

有一些默认插件。选项
'complete'
选择您感兴趣的完成源。可能的措施包括:

  • 电流缓冲器
  • 来自其他窗口的缓冲区
  • 缓冲区列表中的其他已加载缓冲区
  • 已卸载缓冲区列表中的缓冲区
  • 不在缓冲区列表中的缓冲区
  • 使用
    'dictionary'
    选项提供的文件
  • 当前激活的拼写检查(请参见
    拼写检查
  • 使用“同义词库”选项提供的文件
  • 'copcomplete'
    选项中提供的其他字典文件,其行为类似于
    'dictionary'
    'thesaurus'
  • 当前和包含的文件
  • 标签
  • 默认设置为:

  • 当前缓冲区
  • 其他窗口中的缓冲区
  • 其他加载的缓冲区
  • 未加载的缓冲区
  • 标签
  • 包含的文件
  • 最后一项或下一项干扰了您的使用。根据选项搜索包含的文件

    • 'include'
      定义查找include指令的模式。默认值适用于C文件,因此这种完成模式适用于C(和C++)文件,而不适用于其他任何地方
    • “路径”
      定义搜索包含文件的位置。检查您是否有
      /usr/include
    • 'tags'
      定义相对或绝对路径使用的“tags”文件列表。您可能在那里有
      /usr/include/tags
    您可以通过从
    'complete'
    选项中删除相应的标志或从
    'path'
    中删除
    /usr/include
    和/或从
    'tags'
    中删除
    /usr/include/tags
    来禁用这些完成。完成模式是默认模式,但路径不应是(
    /usr/include/tags
    是vi默认模式,但不是vim默认模式,因此如果您设置了
    'nocompatible'
    ,则不应使用它)


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

    是否使用SuperTab?文档中怎么说?@romainl:Completing from include files是一个标准功能,默认在一定程度上为enabled。@JanHudec,我知道,但是OP在Vim的完成机制之上使用了一个完成插件。