我的vim插件
2014-04-03 21:19
267 查看
一、auto.vim
节省时间的vim编程plugin,自动检测你的当前代码,无论是C/C++/Perl/Python/Ruby/Shell. 使用F2键或者快速敲击mm,自动编译执行,有错误继续修改,无错误,则调试,另外特地添加了自动格式化代码的简单功能,使用标准的代码排版,简单实用,当然只支持GNU/Linux操作系统。下图是网络上找到的效果演示:
![](http://www.vimer.cn/wp-content/uploads/2011/01/1.gif)
在 c, cpp, 或者 python,shell,perl 代码中, 按F2 键或 "mm"可以编译和调试
1.一般模式下
;; Exit without saving
,, Save and exit
2.插入模式下
;; return Normal mode
,, return Normal mode
mm return Normal mode
<Alt-j> Down
<Alt-k> Up
<Alt-h> Left
<Alt-l> Right
3.当你写c, cpp ,... 代码时, 该代码会自动被格式化。
For example: If you input a==3;
auto.vim a == 3;
http://www.vim.org/scripts/script.php?script_id=3341
二、code_complete
一大神器。利用Ctags生成tags文件(在代码目录下运行,递归解析当前文件夹),代码如下:
ctags -R --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++将生成的tags文件名改成xxx_tags,拷贝至~/.vim/tags目录中,在~/.vimrc中加入如下代码:
set tags+=~/.vim/tags/xxx_tags
官网演示版效果演示图:
![](http://files.myopera.com/mbbill/files/code_complete.gif)
http://www.vim.org/scripts/script.php?script_id=1764
民间大神演示图:
注释
code_complete插件提供两种风格的注释,一种是/* */形式的标准C语言注释,而另一种是/**< */形式的Doxygen风格的用于在一行后进行注释的文档注释(此插件没有提供自动生成函数文档注释的功能,此功能可以使用更专业的插件DoxygenToolkit.vim来实现)。
![](http://img.my.csdn.net/uploads/201210/22/1350885503_9985.gif)
![](http://img.my.csdn.net/uploads/201210/22/1350885779_3146.gif)
预处理命令
![](http://img.my.csdn.net/uploads/201210/22/1350886666_2293.gif)
头文件包含
![](http://img.my.csdn.net/uploads/201210/22/1350887225_1612.gif)
C语言逻辑结构
![](http://img.my.csdn.net/uploads/201210/22/1350887666_5755.gif)
![](http://img.my.csdn.net/uploads/201210/22/1350887898_6555.gif)
![](http://img.my.csdn.net/uploads/201210/22/1350888129_8949.gif)
![](http://img.my.csdn.net/uploads/201210/22/1350888234_9604.gif)
主函数
![](http://img.my.csdn.net/uploads/201210/22/1350888349_1907.gif)
namespace
![](http://img.my.csdn.net/uploads/201210/22/1350888505_1312.gif)
函数参数补全
![](http://img.my.csdn.net/uploads/201210/22/1350888679_8997.gif)
插件局限性
通过上面的演示,我们发现了此款插件的一些局限性:
自动补全的代码风格跟我们使用的不同(上面的例子已经改为我自己代码风格)。
if else结构、switch结构的分支无法手动指定;
用户自定义函数时,没有函数模板可以使用;
插件的扩展可以参考:http://123304258.blog.163.com/blog/static/1235470201211454121724/
经过扩展以后除了stl,cpp函数库等等的补全,很多补全都有啦。
用法:ife[x]<tab> 在插入模式下输入ife,后面接else if()的分支个数,然后按<tab>键展开。
![](http://img.my.csdn.net/uploads/201210/22/1350890073_6448.gif)
用法:switch[x]<tab> 在插入模式下输入switch,后面接case的分支个数,然后按<tab>键展开。
![](http://img.my.csdn.net/uploads/201210/22/1350890565_9885.gif)
函数模板
这个就强大啦!用法:f[x]<tab> 在插入模式下输入f,后面接函数参数的个数,然后按<tab>键展开。
![](http://img.my.csdn.net/uploads/201210/22/1350891004_6843.gif)
三、cvim
又是一种神器级的插件。这个插件,我在 http://blog.csdn.net/ydonghao2/article/details/13507679 中详细介绍过。
这里 http://lug.fh-swf.de/vim/vim-c/screenshots-en.html 有一些示范。
这里需要记住的是:
1)你可以在 ~/.vim/bundle/c-support/templates/Templates中修改c或者cpp的的头部文件的注释说明。(文件的默认作者,作者的联系方式等。)
2)大多数的情况都可以用上面的一个插件进行操作了,当时还是有一些情况需要我们用到的。
四、cppcomplete
待续。相关文章推荐
- [翻译] SWTableViewCell
- 自设chrome默认滚动条样式
- 使用Eclipse调试Android Native Application---cocos2d-x + Eclipse + Android + ndk
- Linux权限小记
- CSS布局
- cabs
- javascript中typeof的用法
- 冒泡排序
- Java多线程编程
- SSH框架的简单学习—Structs学习
- C#调用Web Service时的身份验证
- 第7章: jQuery插件的使用和写法---目录
- oracle连接函数
- hadoop集群的配置
- Android性能测试小工具Emmagee
- 微软创新杯山东省赛成功举办
- apachectl 和 httpd的关系
- android4.2.2及以上webview调用java本地方法不执行解决办法
- 输入输出流
- Area of Polycubes(简单模拟)