Setting up tags is not so difficult, though (as most things in Vim) it’s not as automatic compared to IDEs.
- First, you need the
ctagstool. The most common in 2022 is Universal Ctags; in 2013 it was Exuberant Ctags, found at ctags.sourceforge.net. - Next, you need to create a tags database (a file names
tags) for all the files in your project(s). This is usually done by runningctags -R .from your project root (also from within Vim via:!ctags ...). Exuberant Ctags support 41 languages, and you can even extend it via regular expressions. - Finally, Vim needs to be configured to pick up the tags database. With
:set tags=./tags;, it will search in the file’s directory upwards to the root directory. If you have certain global include directories, you can add those. - With that, you can start using Vim’s tag functionality like
<C-]>and:tag.
You need to periodically update the tags database; there are plugins (like easytags.vim; 2022 warning: unmaintained, but still working) that can do that automatically for you.