You need to run it once to initialize it. There is a way to set it up so it updates in real time as you change the files. However, I usually run it once for the entire repo after a major update. It takes less than 2 mins to build tags for a repository that is about 20gigs in size. It's fast and very efficient even if you use vim remotely over ssh. There are downsides of course and a bit of a learning curve, but once you get going, it's pretty effective.