h_nosonの日記

競プロ、CTFなど

vimでテンプレート読み込み

テンプレートの読み込みはcppの場合、

autocmd BufNewFile *.cpp 0read $VIM/template/template.cpp

とするのが普通だと思う。
しかしこの方法では、touchや>で作ったファイルやwindowsの新規作成で作ったファイルなどを編集する時に読み込みがされない。そこで、編集を始めたときにファイルサイズが0以下であるかどうかで読み込むようにした。(BufNewFileの時ファイルサイズは-1になる。)

autocmd BufNewFile,BufRead *.cpp if getfsize(@%) <= 0 | 0read $VIM/template/template.cpp | endif

こうすることでファイルを新しく作る時も、作ってあるファイルサイズ0のファイルでもテンプレートを読み込めるようになった。