Создается по частям, несколько отдельных папок с исходным кодом, для каждой отдельно вызывается компилятор-линковщик которому передаются все файлы исходного кода, находящиеся в этой папке, таким образом получается несколько исполняемых файлов, ничего сверхъестественного, ни о какой связи между модулями компилятору знать не нужно.
один исполняемый и пара библиотек?
С библиотеками все точно так же, как и с исполняемыми, только еще задается специальная опция (ключ командной строки) для компилятора-линковщика, которая указывает, что нужно создать библиотеку, что не будет точки входа и т.п.
примеры настройки Vim'а для C/C++
Вряд ли это есть в Vim, скорее вам надо make осваивать, он делает то же самое, что я описал абзацем выше, но все настройки вы сохраняете в файл (скрипт), затем достаточно вызвать лишь команду make без всяких аргументов и она сама применит все настройки.