Имейте что-то подобное в вашем .vimrc:
au BufWritePost *.cpp call InsertHeader()
fun! InsertHeader()
if search('patterninyourheader', 'bwn') == 0
0r header.txt
w
endif
endfun
Это вставит заголовок при каждом сохранении, если его еще нет, так что это не очень эффективно. Лучше написать скрипт для поиска файлов без заголовка и вставить его, а не проверять его каждый раз, когда вы сохраняете изменения в файле.