最近在学习python,好吧,不是因为python太火,火不火的跟我没啥关系,不过确实,有很多前辈对我这个vim入门级小菜鸟给予了很多的帮助,那么回到正题就是因为写python的时候要添加注释,然后我碰巧比较懒,于是cold老大(我的偶像,博客地址在此:cold's world)给我贴了一个他写的自动为新建的py文件添加注释等信息的方法,特此转载,原文出处在此(Vim打开Python源码自动添加#!行和编码行 升级版),尊重原创,请勿非法转载。以下为原文内容,文章会在最后标注我实际添加过程中的不同之处。
之前给大家分享过一个打开Python源代码时自动添加#!行和编码行来避免一些重复的工作,那个是因为需要大量编写时临时的解决方案,后来使用中会出现一些问题,比如查看别人源码时也会更改一些东西,从而造成git不必要的更新和手动删除的额外动作,所以又写了一个,只是在文件是新打开文件时或者空文件才自动添加的方法,同时再打开python源文件将这个方法绑定要F4上可以手动添加,并会判断是否有这两行,如果有则不执行动作,同时也添加了一些辅助性注释, 比如 作者/邮箱/创建日期和描述,代码实现如下:
"Python 注释
function InsertPythonComment()
exe 'normal'.1.'G'
let line = getline('.')
if line =~ '^#!.*$' || line =~ '^#.*coding:.*$'
return
endif
normal O
call setline('.', '#!/usr/bin/env python')
normal o
call setline('.', '# -*- coding:utf-8 -*-')
normal o
call setline('.', '#')
normal o
call setline('.', '# Author : '.g:python_author)
normal o
call setline('.', '# E-mail : '.g:python_email)
normal o
call setline('.', '# Date : '.strftime("%y/%m/%d %H:%M:%S"))
normal o
call setline('.', '# Desc : ')
normal o
call setline('.', '#')
normal o
call cursor(7, 17)
endfunction
function InsertCommentWhenOpen()
if a:lastline == 1 && !getline('.')
call InsertPythonComment()
end
endfunc
au FileType python :%call InsertCommentWhenOpen()
au FileType python map <F4> :call InsertPythonComment()<cr>
将上面的代码放到你的vimrc中,同时在vimrc添加:
let g:python_author = 'cold' # 姓名
let g:python_email = 'wh_linux@126.com' # 邮箱
这样在每次打开空的python源文件时就会添加这些注释信息,并可以在非空没有这些注释的情况下按F4添加,配置玩后,打开空的python源文件效果如下:
那么说下我实际测试中的吧,我实际写的时候,可能是因为vim版本不太一样,然后不能用end来代替endif,也不能用endfunc来代替endfunction,所以如果报同样错误的同学需要注意了,最后贴一张我实际的效果图:
嗯,最后我想说,不用在乎IDE强还是vim强,争来争去的没必要,自己喜欢就好。