Reputation: 7505
How do I tell the Vim editor about my include files path so that it can auto complete the function names when I press CTRL+N?
For example, I have a C program like below:
#include<stdio.h>
int main()
{
sca // here I press control+N, it does not complete to scanf
}
Upvotes: 12
Views: 5620
Reputation: 37103
In your .vimrc
, add the paths to your .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)
You can check the paths as well by opening your file and then entering
:checkpath
This will give you a list of all included files that are missing. N.B. It doesn't seem to handle preprocessor directives, so you will get some false positives. Entering
:checkpath!
Will give a complete list of found and missing include files.
Upvotes: 21
Reputation: 2720
Vim might also know the path already, if the files are in a standard location.
<C-n> uses the 'complete' option and the flag i
scans included files. To add i
to 'complete':
set complete+=i
you can also get a tags file from the symbols you want completed, which you can use with:
set complete+=t
Upvotes: 3
Reputation: 57354
Also, Important to note there are many completion functions.
^x ^o = "omnicomplete"
^x ^i = "included-files completion"
^x ^f = "path completion"
^x ^l = "Complete this line using one that looks the same"
see
:help ins-completion
for more.
Upvotes: 16