Переносимый ответ будет использовать не cp
(что может перезаписать существующий ранее make-файл), а функции vim readfile () и writefile ().
Чтобы запустить его, лучше всего определить и выполнить функцию, которая загружает первый скелет и создает Make-файл на лету:
" untested code
"
function! s:NewTeXPlusMakefile()
let where = expand('%:p:h')
" see mu-template's fork for a more advanced way to find template-files
let skeletons_path = globpath(&rtp, 'templates')
" the current .tex file
let lines = readfile(skeletons_path.'/skeleton.tex')
call setline(1, lines)
" the Makefile, that MUST not be overwritten when it already exists!
let makefile = where.'/Makefile'
if ! filereadable(makefile)
let lines = readfile(skeletons_path.'/skeleton.makefile')
call writefile(lines, makefile )
endif
endfunction
augroup LaTeXTemplates
au!
au BufNewFile *.tex call s:NewTeXPlusMakefile()
augroup END