I found a partial answer to my question here: http://tech.groups.yahoo.com/group/vim/message/68078
However, not sure why would the following be declared as an invalid C code: struct foo { /* ... */ }; typedef struct foo foo_t; int main() { foo myfoo; /* ... */ } In fact, I have a lot of instances in the code where following is used. And what I got from Bram it sounds omnicompletion will not work!? To me this would be the most basic thing for omnicomplete to support. typedef struct foo { /* ... */ } foo_t; int main() { foo myfoo; /* ... */ foo. <CTRL-x><CTRL-o> yields with "Pattern not found" } ____________________________________________________________________________________ Need a quick answer? Get one in minutes from people who know. Ask your question on www.Answers.yahoo.com