A few weeks ago I made the switch from using Conquery of Code (CoC) to using Neovim's native Language Server Protocol (LSP). This modernized my vim setup and delivered the kind of hinting, linting, and completion necessary to code efficiently.
One of my Vim plugins generates a .cache directory in every project. Instead of telling every git repo to ignore it, use the system-wide exclude file.