Friday, March 5, 2010

vim script: automatic setup "include guard" for new c/c++ header file


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

No comments: