Vim关键字完成

时间:2008-11-21 09:28:49

标签: c vim

如何告诉Vim编辑器我的包含文件路径,以便在按 CTRL + N 时自动完成功能名称?

例如,我有一个如下的C程序:

#include<stdio.h>
int main()
{
    sca // here I press control+N, it does not complete to scanf
}

3 个答案:

答案 0 :(得分:19)

.vimrc中,添加.vimrc的路径:

set path+=/usr/include/**
set path+=/my_include_dir/include
set path+=/my_include_dir/srclib/apr/**
set path+=/my_other_include_dir/srclib/apr-util/**

** means all sub-directories.
*  means all contained directories
.  means all files in the directory of the found file
+= means prepend to existing path (iirc)

您也可以打开文件然后输入

来检查路径
:checkpath

这将为您提供缺少的所有包含文件的列表。注:它似乎不处理预处理器指令,因此您将得到一些误报。输入

:checkpath!

将提供已找到和缺失的包含文件的完整列表。

答案 1 :(得分:16)

此外,重要的是要注意有许多完成功能。

^x ^o  = "omnicomplete" 
^x ^i  = "included-files completion" 
^x ^f  = "path completion" 
^x ^l  = "Complete this line using one that looks the same"

:help ins-completion 

了解更多。

答案 2 :(得分:3)

如果文件位于标准位置,Vim也可能已知道路径。 c为C-N&GT;使用'完整'选项,标志i扫描包含的文件。要将i添加到“完成”:

set complete+=i

您还可以从要完成的符号中获取标记文件,您可以将其用于:

set complete+=t