function! FileName()
return expand('%:t')
endfunction
function! HeadName()
return toupper(substitute(FileName(), '\.', "_", "g"))
endfunction
function! IncludeGuard()
let lines = []
let lines += ["#ifndef " . HeadName() . "_"]
let lines += ["#define " . HeadName() . "_"]
let lines += [""]
let lines += ["#endif"]
return lines
endfunction
autocmd BufNewFile *.h call append(0, IncludeGuard())
:e abcd.h
#ifndef ABCD_H_
#define ABCD_H_
#endif
