Vim is a nice editor and I use it for many tasks.

However, when it comes to start working on a new (possibly huge) codebase, I don't feel comfortable using it to go around the code with the objective of understanding how things work.

For example, if I want to see where a C++ function is used, I can `:vimgrep` for that function in every `**/*.cpp` files and `:copen` the quickfix window to jump on every occurrence... of that string.

If I do the same with e.g. Eclipse (call hierarchy of a C++ method), that will not be just a string, but a C++ method defined in an object, so I will get a precise indication of the usages of that function (and not also a function with the same name defined in another class).

So the question is, how to make vim a powerful tool to analyze code?

Subquestions:

* Are there any vim plugins designed for this?
* Does it make sense to use vim to only analyze code? Probably external tools (e.g.: [OpenGrok](http://opengrok.github.io/OpenGrok/ "OpenGrok")) can do the job?