让vim更加智能化

Posted guochaoxxl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了让vim更加智能化相关的知识,希望对你有一定的参考价值。

从此,让我的vim更加的智能化,整整用了一个周日,基本是值得的:

"新建.c.cpp.python.sh等文件时,使用定义的函数SetTitle,自动插入文件头
276 func SetTitle()
277 "如果文件类型为不同种类文件文件时:
278 if &filetype == c
279     call setline(1, "//This is c program code!")
280     call append(line(".")+0,"/* *=+=+=+=+* *** *=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=")
281     call append(line(".")+1,"  * 文档信息: *** :".expand("%:p:~"))
282     call append(line(".")+2,"  * 创建时间: *** :".strftime("%c"))
283     call append(line(".")+3,"  * 版权声明: *** :(魎魍魅魑)MIT")
284     call append(line(".")+4,"  * 联络信箱: *** :guochaoxxl@163.com")
285     call append(line(".")+5,"  * 文档用途: *** :深入理解C指针")
286     call append(line(".")+6,"  * 作者信息: *** :guochaoxxl(http://cnblogs.com/guochaoxxl)")
287     call append(line(".")+7,"  * 修订时间: *** :".strftime("%Y年第%W周 %m月%d日 %A %p%I:%M (%j天)"))
288     call append(line(".")+8,"  * 文件描述: *** :自行添加")
289     call append(line(".")+9," * *+=+=+=+=* *** *+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+*/")
290     call append(line(".")+10," ")
291 endif
292 
293 if &filetype == cpp
294     call append(line(".")+0,"/* *=+=+=+=+* *** *=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=")
295     call append(line(".")+1,"  * 文档信息: *** :".expand("%:p:~"))
296     call append(line(".")+2,"  * 创建时间: *** :".strftime("%c"))
297     call append(line(".")+3,"  * 版权声明: *** :(魎魍魅魑)MIT")
298     call append(line(".")+4,"  * 联络信箱: *** :guochaoxxl@163.com")
299     call append(line(".")+5,"  * 文档用途: *** :深入理解C指针")
300     call append(line(".")+6,"  * 作者信息: *** :guochaoxxl(http://cnblogs.com/guochaoxxl)")
301     call append(line(".")+7,"  * 修订时间: *** :".strftime("%Y年第%W周 %m月%d日 %A %p%I:%M (%j天)"))
302     call append(line(".")+8,"  * 文件描述: *** :自行添加")
303     call append(line(".")+9," * *+=+=+=+=* *** *+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+*/")
304     call append(line(".")+10," ")
305 endif
306 
307 if &filetype == python
308     call setline(1, "#!/usr/bin/env python")
309     call append(line(".")+0,"#/* *=+=+=+=+* *** *=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=")
310     call append(line(".")+1,"#  * 文档信息: *** :".expand("%:p:~"))
311     call append(line(".")+2,"#  * 创建时间: *** :".strftime("%c"))
312     call append(line(".")+3,"#  * 版权声明: *** :(魎魍魅魑)MIT")
313     call append(line(".")+4,"#  * 联络信箱: *** :guochaoxxl@163.com")
314     call append(line(".")+5,"#  * 文档用途: *** :深入理解C指针")
315     call append(line(".")+6,"#  * 作者信息: *** :guochaoxxl(http://cnblogs.com/guochaoxxl)")
316     call append(line(".")+7,"#  * 修订时间: *** :".strftime("%Y年第%W周 %m月%d日 %A %p%I:%M (%j天)"))
317     call append(line(".")+8,"#  * 文件描述: *** :自行添加")                                                                                                                                                                                                                                                                                                                                
318     call append(line(".")+9,"# * *+=+=+=+=* *** *+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+*/")
319     call append(line(".")+10," ")
320 endif
321 
322 if &filetype == sh
323     call setline(1, "#!/usr/bin/bash")
324     call append(line(".")+0,"#/* *=+=+=+=+* *** *=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=")
325     call append(line(".")+1,"#  * 文档信息: *** :".expand("%:p:~"))
326     call append(line(".")+2,"#  * 创建时间: *** :".strftime("%c"))
327     call append(line(".")+3,"#  * 版权声明: *** :(魎魍魅魑)MIT")
328     call append(line(".")+4,"#  * 联络信箱: *** :guochaoxxl@163.com")
329     call append(line(".")+5,"#  * 文档用途: *** :深入理解C指针")
330     call append(line(".")+6,"#  * 作者信息: *** :guochaoxxl(http://cnblogs.com/guochaoxxl)")
331     call append(line(".")+7,"#  * 修订时间: *** :".strftime("%Y年第%W周 %m月%d日 %A %p%I:%M (%j天)"))
332     call append(line(".")+8,"#  * 文件描述: *** :自行添加")
333     call append(line(".")+9,"# * *+=+=+=+=* *** *+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+*/")
334     call append(line(".")+10," ")
335 endif
336 
337 normal Gj
338 normal I
339 endfunc
340 
341 autocmd BufNewFile *.c,*.cpp,*.py,*.sh exec ":call SetTitle()"

当然可以继续优化,都是后话了,能用再说吧。

以上是关于让vim更加智能化的主要内容,如果未能解决你的问题,请参考以下文章

vim粘贴代码格式变乱

Vim:让自动完成更智能

VIM 代码片段插件 ultisnips 使用教程

从零开始配置vim(27)——代码片段

从零开始配置vim(27)——代码片段

从零开始配置vim(27)——代码片段