vim SetComment自动注释
" 当新建 .py .sh .md等文件时自动调用SetComment 函数
autocmd BufNewFile *.py exec ":call SetCommentPy()"
autocmd BufNewFile *.sh exec ":call SetComment_sh()"
autocmd BufNewFile *.md exec ":call SetComment_md()"
func SetCommentPy()
call setline(1, "#!/usr/bin/env python")
call append(line("."), "# coding=utf8")
call append(line(".")+1, "# ===============================================================================")
call append(line(".")+2, "# Copyright (C) ".strftime("%Y")." www.361way.com site All rights reserved.")
call append(line(".")+3, "# ")
call append(line(".")+4, "# Filename :".expand("%:t"))
call append(line(".")+5, "# Author :yangbk <itybku@139.com>")
call append(line(".")+6, "# Create Time :".strftime("%Y-%m-%d %H:%M"))
call append(line(".")+7, "# Description :")
call append(line(".")+8, "# ===============================================================================")
endfunc
func SetComment_sh()
call setline(1, "#!/bin/bash")
call setline(2, "# ================================================================")
call setline(3, "# Copyright (C) ".strftime("%Y")." www.361way.com site All rights reserved.")
call setline(4, "# ")
call setline(5, "# Filename :".expand("%:t"))
call setline(6, "# Author :yangbk <itybku@139.com>")
call setline(7, "# Create Time :".strftime("%Y-%m-%d %H:%M"))
call setline(8, "# Description :")
call setline(9, "# ================================================================")
call setline(10, "")
endfunc
func SetComment_md()
call setline(1,'---')
call append(line("."), '"title":' ,)
call append(line(".")+1, '"tags": ["tag1", "tag2"]',)
call append(line(".")+2, '"description": " "',)
call append(line(".")+3, '"author": "yangbk"')
call append(line(".")+4, '---')
call append(line(".")+5, "")
endfunc
上面创建了三个函数,分别在不同的文件结尾时,进行调用。这里也测试过另一种集体调用的方式,不过不pyhton和markdown文件不生效,暂不了解问题出现在哪里:
autocmd BufNewFile *.md,*.py,*.sh exec ":call SetTitle()"
" 定义函数SetTitle,自动插入文件头
func SetTitle()
if &filetype == 'py'
call SetCommentPy()
elseif &filetype == 'sh'
call SetComment_sh()
elseif &filetype == 'md'
call SetComment_md()
endif
endfunc