phpcomplete.vim complements Vim's built-in omnicomplete functions. It relies on Vim's access to a tags
file.
A tags
file is a metadata file that can describe your code and the relationships between its elements, like Classes, Interfaces, Methods, etc.
phpcomplete.vim does not generate that file for you, so before using phpcomplete.vim, you'll need to generate it for your PHP project on your own.
First, you'll need a program that can parse your PHP project and output a tags file. There are a few choices for doing so and they're outlined here: Getting Better Tags.
Once you have a ctags
or phpctags
program installed, make sure it's in your $PATH
(relevant StackExchange post).
The rest of this guide will assume you're using phpctags
; if you're using something else, substitute the phpctags
command with ctags
.
Now we're ready to generate our tags file. First, change directories to your project root, then you'll run the command to generate a tags
file. Like so:
$ cd /path/to/your/project
$ phpctags -R
This should output a tags
file in the current directory.
You may want to add that file to your .gitignore
. If you're working with non-Vim users, you can try adding it to .git/info/exclude
so as not to pollute your project's .gitignore
with your Vim-specific rules.
Note: If you're using phpctags
and your project is large enough, phpctags
might run out of memory. If that happens, it will silently fail by not outputting a tags
file at all. You can try replacing the command above with: phpctags --memory=-1 -R
to give phpctags
unlimited memory.
By default, Vim will look for your tags
file in your cwd
under the following files: ./tags,tags
, this default behaviour is usually good enough.
The file lookup is controlled by the option tags
. Some plugins like fugitive will add your project's .git/tags
file to this list. If for some reason you need to add an another path you can do it like this:
set tags+=./some/path/to/extra/tags
See more under :help 'tags'
Once you have everything set up above, you can finally get completions! The command to get Vim to open up suggestions is <ctrl-x><ctrl-o>
.
That means hitting the CTRL+x keys at the same time, then hitting CTRL+o right after.
If there are multiple suggestions, you can use CTRL+n to scroll down the list and CTRL+p to scroll up the list.
Hitting TAB will complete the word under your cursor with your selection.
That's it, enjoy!