估计大家也都和我一样用过不少的编辑器,什么 notepad2,emeditor,editplus,ultraedit,vs2005,sourceinsight,slickedit,emacs,vim(gvim), 别看多,我其实还是比许多编辑器疯狂玩家(注意,真的是玩家)收敛多了,当然最后还是本分的从了vim(gvim),呵呵,因为Vim实在能带给我其他编 辑器所没有的高效。
很多编辑器都支持在源代码中自动添加作者信息的功能,据我所致sourceinsight就支持,虽然我们的Vim(gvim)默认没有这个功能,但是只需要几行代码自己配置一下,我们一样可以让Vim(gvim)支持自动添加作者信息!
还是照例,先贴个图给大家解解馋:
估计大家也都和我一样用过不少的编辑器,什么 notepad2,emeditor,editplus,ultraedit,vs2005,sourceinsight,slickedit,emacs,vim(gvim), 别看多,我其实还是比许多编辑器疯狂玩家(注意,真的是玩家)收敛多了,当然最后还是本分的从了vim(gvim),呵呵,因为Vim实在能带给我其他编 辑器所没有的高效。
很多编辑器都支持在源代码中自动添加作者信息的功能,据我所致sourceinsight就支持,虽然我们的Vim(gvim)默认没有这个功能,但是只需要几行代码自己配置一下,我们一样可以让Vim(gvim)支持自动添加作者信息!
还是照例,先贴个图给大家解解馋:
好啦,现在贴出代码如下:
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 :call TitleDet()&#39;s function AddTitle()call append(0,"/*&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;")call append(1,"#")call append(2,"# Author: dantezhu - dantezhu&#64;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,"&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;*/")echohl WarningMsg | echo "Successful in adding the copyright." | echohl None endf "更新最近修改时间和文件名 function UpdateTitle()normal m&#39;execute &#39;/# *Last modified:/s&#64;:.*$&#64;\&#61;strftime(":\t%Y-%m-%d %H:%M")&#64;&#39;normal &#39;&#39;normal mkexecute &#39;/# *Filename:/s&#64;:.*$&#64;\&#61;":\t\t".expand("%:t")&#64;&#39;execute "noh"normal &#39;kechohl WarningMsg | echo "Successful in updating the copy right." | echohl None endfunction "判断前10行代码里面&#xff0c;是否有Last modified这个单词&#xff0c; "如果没有的话&#xff0c;代表没有添加过作者信息&#xff0c;需要新添加&#xff1b; "如果有的话&#xff0c;那么只需要更新即可 function TitleDet()let n&#61;1"默认为添加while n <10let line &#61; getline(n)if line &#61;~ &#39;^\#\s*\S*Last\smodified:\S*.*$&#39;call UpdateTitle()returnendiflet n &#61; n &#43; 1endwhilecall AddTitle() endfunction |
这段代码在linux和windows下&#xff08;vim/gvim&#xff09;均可运行正常。
不知道大家看懂了没有&#xff0c;实际上在一个C/C&#43;&#43;/C#/JAVA文件中&#xff0c;只需要按下F4&#xff0c;那么信息就自动给你添加到文件开头啦&#xff1b;如果已经存在版权信息&#xff0c;那么vim会帮你自动更新到最新状态。
另外还要帮大家提到一个小细节&#xff0c;即
1 2 | normal m&#39; normal &#39;&#39; |
这两行&#xff0c;他们实际上是调用了vim(gvim)内置的标记位置的方法&#xff0c;在执行完相应操作之后&#xff0c;又跳回到原来的位置。所以当用F4添加/更新作者信息的时候&#xff0c;不用担心光标的位置会被移动啦~~
好啦&#xff0c;在自己的Vim里面试一下吧&#xff0c;是不是比原来方便了很多啊&#xff0c;有用的话要记得请我吃饭啊~~哈哈
版权所有&#xff0c;转载请注明出处。http://www.vimer.cn
分类: linux 学习