vim 一键添加注释 自动添加文件头注释

估计你们也都和我同样用过很多的编辑器,什么notepad2,emeditor,editplus,ultraedit,vs2005,sourceinsight,slickedit,emacs,vim(gvim),别看多,我其实仍是比许多编辑器疯狂玩家(注意,真的是玩家)收敛多了,固然最后仍是本分的从了vim(gvim),呵呵,由于Vim实在能带给我其余编辑器所没有的高效。
不少编辑器都支持在源代码中自动添加做者信息的功能,据我所致sourceinsight就支持,虽然咱们的Vim(gvim)默认没有这个功能,可是只须要几行代码本身配置一下,咱们同样可让Vim(gvim)支持自动添加做者信息!
仍是照例,先贴个图给你们解解馋:linux

估计你们也都和我同样用过很多的编辑器,什么notepad2,emeditor,editplus,ultraedit,vs2005,sourceinsight,slickedit,emacs,vim(gvim),别看多,我其实仍是比许多编辑器疯狂玩家(注意,真的是玩家)收敛多了,固然最后仍是本分的从了vim(gvim),呵呵,由于Vim实在能带给我其余编辑器所没有的高效。
不少编辑器都支持在源代码中自动添加做者信息的功能,据我所致sourceinsight就支持,虽然咱们的Vim(gvim)默认没有这个功能,可是只须要几行代码本身配置一下,咱们同样可让Vim(gvim)支持自动添加做者信息!
仍是照例,先贴个图给你们解解馋:面试


好啦,如今贴出代码以下:vim

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
"进行版权声明的设置
"添加或更新头
map <F4> :call TitleDet()<cr>'s
function AddTitle()
    call append(0,"/*=============================================================================")
    call append(1,"#")
    call append(2,"# Author: dantezhu - dantezhu@vip.qq.com")
    call append(3,"#")
    call append(4,"# QQ : 327775604")
    call append(5,"#")
    call append(6,"# Last modified: ".strftime("%Y-%m-%d %H:%M"))
    call append(7,"#")
    call append(8,"# Filename: ".expand("%:t"))
    call append(9,"#")
    call append(10,"# Description: ")
    call append(11,"#")
    call append(12,"=============================================================================*/")
    echohl WarningMsg | echo "Successful in adding the copyright." | echohl None
endf
"更新最近修改时间和文件名
function UpdateTitle()
    normal m'
    execute '/# *Last modified:/s@:.*$@\=strftime(":\t%Y-%m-%d %H:%M")@'
    normal ''
    normal mk
    execute '/# *Filename:/s@:.*$@\=":\t\t".expand("%:t")@'
    execute "noh"
    normal 'k
    echohl WarningMsg | echo "Successful in updating the copy right." | echohl None
endfunction
"判断前10行代码里面,是否有Last modified这个单词,
"若是没有的话,表明没有添加过做者信息,须要新添加;
"若是有的话,那么只须要更新便可
function TitleDet()
    let n=1
    "默认为添加
    while n < 10
        let line = getline(n)
        if line =~ '^\#\s*\S*Last\smodified:\S*.*$'
            call UpdateTitle()
            return
        endif
        let n = n + 1
    endwhile
    call AddTitle()
endfunction

这段代码在linux和windows下(vim/gvim)都可运行正常。
不知道你们看懂了没有,实际上在一个C/C++/C#/JAVA文件中,只须要按下F4,那么信息就自动给你添加到文件开头啦;若是已经存在版权信息,那么vim会帮你自动更新到最新状态。
另外还要帮你们提到一个小细节,即windows

1
2
normal m'
normal ''

这两行,他们其实是调用了vim(gvim)内置的标记位置的方法,在执行完相应操做以后,又跳回到原来的位置。因此当用F4添加/更新做者信息的时候,不用担忧光标的位置会被移动啦~~
好啦,在本身的Vim里面试一下吧,是否是比原来方便了不少啊,有用的话要记得请我吃饭啊~~哈哈
版权全部,转载请注明出处。http://www.vimer.cnapp

相关文章
相关标签/搜索