从开始适用VIM已经快半年了,经过半年的打造和熟悉,VIM已经成为我工作生活中不可分开的一部分!现在使用WORD、或者在其他人的机子上使用!SourceInsigh等工具时候都忍不住按ESC、HJKL! 在使用过程中,我也贡献了一个插件,funprototypes.vim,可以自动添加函数原型到程序中!

VIM真的是个非常强大的工具,介绍一篇博文<>, url:http://hi.baidu.com/jiqing0925/blog/item/ff30eb11f6671d6ccb80c42d.html,

,在这篇博文中你就会知道VIM和Emacs被称为神器的原因。存在即合理,VIM和Emacs存在这么长的时间肯定是有它们的道理的,VIM的入门门槛比较高,但是当你真正融入到其中时,你就会惊叹其强大!

废话不多说,现在就介绍把VIM打造成一个C/C++  IDE 需要如何设置,添加什么插件!

* 1. IDE类插件

首先要形似,形似则神似,一般的IDE(就拿SourceInsight来说)一般有文件导航,函数列表,搜索结果等窗口。在VIM你也可以同样的实现。

* NERD_tree & project

NERD_tree:http://www.vim.org/scripts/script.php?script_id=1658

project :http://www.vim.org/scripts/script.php?script_id=69

这2个插件一般出现在IDE的左边,通过这2个插件可以方便的定位到想要编辑的文件。NERD_tree就是文件浏览器,project就比较像其他IDE。对于小型的系统,NERD_tree就可以了,project就比较麻烦,需要自己添加一些信息,但是它比较灵活,可以对文件进行分类。个人适用意见:project一开始觉得有点用,到后面用着用着就觉得没什么用,如同滇狐说的,食之无味,弃之可惜,对于小系统来说有NERD_tree足矣,对于大的系统来说,其又显得更不灵活了。

还有一个非常棒的定位编辑文件的插件是lookupfile.vim. 可以在快速查找文件, 这个插件对于大型的系统来说是非常有帮助的,不过使用也稍微有点小小麻烦,要生成一个tags文件,具体怎么操作可以参看易水博客的博文:http://easwy.com/blog/archives/advanced-vim-skills-lookupfile-plugin/. 还有一个功能比较强大的查找插件是fuzzfinder.vim, 不过我用习惯了lookupfile.

* taglist.vim

http://www.vim.org/scripts/script.php?script_id=273

这个插件可是常年雄霸vim下载榜第一名。通过设置可以在vim右边显示定义的全局变量、宏定义、函数等!非常容易在文件中进行定位。

* quickfix

这个插件已经集成到vim中了,可以显示搜索结果,编译结果等。可以像IDE一样按一个键就可以到下一个结果。非常方便!

* srcexpl

这个插件在屏幕下方开一个小窗口,当你把光标移动到函数名或者变量会在这个窗口显示其定义。这个插件是我们中国人开发的。也很棒!

* bufexplore tabbar

tabbar在屏幕最上端显示打开的文件列表。bufexplore可以管理打开的文件。用这2个插件的时候最好设置set hidden。设置隐藏缓存

智能提示是IDE不可缺少的一个功能,VIM也能完成这个功能。智能提示的插件有好多个,通过很多个插件结合可以快速的提示,加快开发速度。

智能提示一般都会依赖Ctags或者cscope, ctags和cscope不是vim插件,它们是独立的程序,它们的作用就是扫描文件,提取符号集,记录其所在的位置。所有的IDE都有这样的程序,它们一般都运行在后台,当你改变文件时,它们也更新符号集数据库。VIM唯一让我不爽的就是这点,它没有后台程序来记录这些改变,需要手动更新。当你处理一个大型的系统时候更新一次又非常慢,ctags不支持增量,但是很多的插件都依赖它。这点真的很让人蛋疼!不过还好有缓存提示,就是你当前编辑的文件中的符号集都会被自动搜集起来,这样你没有手动更新的情况下也会提示。

* AutoComplPop & neocomplcache

这2个插件选其一,acp比较轻量级,neocomplcache功能比较强大,我用的是 neocomplcache. 有了这二个插件会自动弹出提示,而不要按. 大大减少了按键次数。

* supertab

按tab键可以完成自动补全

* code_complete

这个插件在写函数的时候很有用,当你不知到函数原型时,按映射的键可以显示出原型,如果你忘了原型这样就不必去文件中找。

比如定义了一个函数int foo(int a, int b)

当你输入foo(, 按快捷键(默认是tab,安装来acp或者neocomplcache要改下)便提示foo(`` , ``) , 是不是很强大?(前提是要生成tags文件)

* snipMate

当输入很少的几个字符再输入定义的快捷键就可以让VIM帮你输出事先定义好的片段

举例:输入pr按映射的快捷键便提示:printf("%s/n");

* c.vim

功能非常强大,包含snipMate的功能(不过还是snipMate好用),还有注释,编译,splint等功能。创建新文件时自动添加文件注释等!

* OmniCppComplete

这个主要是针对类、结构体,当输入“.""->"时会弹出其成员函数、成员变量或者结构体成员!当然也要有tags文件!

* a.vim

在.h .c cpp 中切换! 方便在头文件和源文件中切换!

* crefvim.vim

可以方便的查看标准C的文档,当你不知道使用某个标准库的函数要哪个头文件时,不知道需要什么参数时,按cr便很轻松的可以知道!

* DoxygenToolkit.vim

把光标移到函数名上,输入命令:Dox便可以在函数上面添加这个函数的注释,参数的说明等。

* SingleCompile.vim

当你只是想证明一个小函数的功能,又觉得写makefile太麻烦时,这个插件就刚刚好啦!

* svncommand.vim && vcscommand.vim

这2个插件用来做版本控制,svncommand只适用于svn, vcscommand则适用许多版本控制工具。

* EnhancedCommentify.vim

适用于各种语言的注释,只需要记住一个快捷键,就可要注释或取消注释多种语言。very good!

* funprototypes.vim

http://www.vim.org/scripts/script.php?script_id=3459

嘿嘿,该插件就是由小弟我完成的啦。这个插件只适用于C语言,输入fd就可以把函数的原型添加到第一个函数前,或者自定义位置,当你修改了参数后也只要按快捷键,插件便会自动帮你修改!是不是也很方便呢?

* headerguard.vim

自动帮你添加头文件.h的重复宏定义的预定义。

* valgrind.vim

valgrind是个非常强大的检查内存泄漏的工具,使用这个插件后便和vim结合在一起,当检测出错误后便会显示在quickfix列表中,可以很方便的定位问题!

2 工具类

* SearchComplete

当你查找一个单词,而单词又不在当前页面,或者你不想输太多字母,这个插件就帮你的忙了,只要输入开始几个字母,按tab键便会自动补全!

* mark.vim

vim自带的搜索只能高亮显示一个,这个插件可以高亮显示高达6个!

* visualmark

让你快速的在文件中跳转,按mm标记这一行,当你想回到这一行时,按立刻就到!

* highlight_current_line.vim

高亮当前行

* sketch.vim

在文件中画图,还蛮好玩的。只支持gvim, 终端模式下貌似不支持!

* matchit.vim

在vim中按%号可以自动快速跳转到匹配的(),{}, 它扩展了功能,使他可以适用在更大的范围!

* vimwiki.vim

让你打造自己的维基百科!越用你会越喜欢它!

* calendar.vim

在vim中写日记!它结合了vimwiki的功能,这样就更完美了!

* pathogen.vim

管理插件,当越来越多的插件安装的时候就会发现它的好处了,当你想删除一个插件,但是这个插件又分布在各个文件夹中,有了这个插件,一切都简单了,凯撒的归凯撒,耶稣的归耶稣,属于这个插件的文件都在一个文件夹中,直接把这个文件删除就OK了。

3 娱乐

在VIM中也可以玩游戏,这在别的IDE中不能办到吧!

* tetris

俄罗斯方块!不过很快就会挂的。建议新手玩,可以让你很快熟悉VIM的方向键!

* sokoban

推箱子游戏!

* MinesPlugin

扫雷!

4 总结

也许你对VIM和Emacs是神器还有写怀疑,但是只要你配置好你的VIM,你就越来越离不开它的。神器是需要打造的,VIM的入门门槛的确比较高,熟悉它的确需要花费一些时间,但是磨刀不误砍柴功,打造好神器后至少让你的编辑效率高50%! It will change you life!

还有一些其它的插件也是很好用的,eclim就把VIM和Eclipse结合在一起,Java开发者可以试试!对于VIM的适用,建议大家多去易水博客,这个博客里面对VIM的使用介绍得非常的详细!

====

http://blog.csdn.net/wuhong40/article/details/6245410

c语言item需要什么头文件,==把VIM打造成开发C的IDE==相关推荐

  1. C语言两种导入头文件的区别

    C语言两种导入头文件的区别 #include<stdio.h> 和 #include"stdio.h" 这两种导入头文件的区别: 区别在于编译器查找头文件的顺序, &q ...

  2. linux c之c语言符合标准的头文件和linux常用头文件

    1.C语言符合标准的头文件 #include <assert.h> //设定插入点 #include <ctype.h> //字符处理 #include <errno.h ...

  3. C语言的艺术之——头文件

    好记性不如烂笔头o(^▽^)o 系列的文章: <C语言的艺术之--头文件> <C语言的艺术之--函数> <C语言的艺术之--标识符命令与定义> <C语言的艺术 ...

  4. 09C语言高级篇之头文件的编写

    C语言高级篇之头文件的编写 1.extern理解 ​ 1.extern,声明,当然也可以同时定义(一般没必要),函数可以省略,使用该关键字定义变量称做"外部变量声明" ​ 2.ex ...

  5. 【酷熊科技】工作积累 ----------- Unity3D / c 语言 使用 Stringbuilder 引用头文件 using System.Text...

    使用 StringBuilder Unity3D / c 语言 使用 Stringbuilder 引用头文件 using System.Text 简述StringBuilder和String的区别? ...

  6. c语言exit在哪个头文件_C语言函数执行成功时,返回1和返回0,究竟哪个好?

    基本上,没有人会将大段的C语言代码全部塞入 main() 函数,更好的做法是按照复用率高,耦合性低的原则,尽可能的将代码拆分不同的功能模块,并封装成函数.C语言代码的组合千变万化,因此函数的功能可能会 ...

  7. C语言再学习 -- 常用头文件和函数(转)

    参看:C/C++常用头文件及函数汇总 linux常用头文件如下: POSIX标准定义的头文件 <dirent.h>        目录项 <fcntl.h>         文 ...

  8. mp4文件时长 c++源码_【C语言】如何使用头文件 .h 编译 C 源码!so easy!

    在 C 语言中,头文件或包含文件通常是一个源代码文件,程序员使用编译器指令将头文件包含进其他源文件的开始(或头部),由编译器在处理另一个源文件时自动包含进来. 一个头文件一般包含类.子程序.变量和其他 ...

  9. go语言调用c 的头文件 so,Golang生成共享库(shared library)以及Golang生成C可调用的动态库.so和静态库.a...

    Golang类似于C的静态语言,效率也接近于C,如果Golang也可以导出可供C调用的库,那可以和很多高级语言say goodbye了,goodbye似乎又有点武断,但至少说,Golang可以做很多事 ...

最新文章

  1. What’s new: Windows Phone 7 与 Windows Phone 6.5功能对比
  2. 用border-width,border-color画三角形
  3. angular 图片引入_推荐一个 angular 图像加载插件
  4. 博览安全圈:360曝Office高危漏洞 微软及时修复
  5. Hdu 4415 Assassin's Creed 【贪心】.cpp
  6. 电脑录屏工具_这四款录屏工具,也许是电脑录屏软件中免费、无广告且最实用的,程序员必备...
  7. 用hudson配置持续集成CI服务器几个关键的配置
  8. 2022年五一数学建模C题讲解
  9. Coursera | 离散数学概论(北大)| quiz答案
  10. Windows Server 2012 网络发现选项无法启动 启动不生效(无法保存)
  11. 在Linux上搭建TCP通信测试服务器
  12. 2006考研阅读Text2翻译
  13. 使用disk genius合并C盘和D盘
  14. 2020CCPC 绵阳 7-4 Defuse the Bombs(二分)
  15. 单向散列函数 (Hash)
  16. spf13/viper
  17. 阻尼振动与无阻尼电磁振动(大学物理笔记)
  18. Qt中使用QByteArray读文件得到的数据后转成int
  19. Python核心:5. 容器类型和6.函数function
  20. 一种基于智能卡登录Windows系统的实现方式

热门文章

  1. 刷CM7固件 乐padA1-07专用固件
  2. 2 RRC 三种状态
  3. HTTP跳槽涨薪篇,通俗易懂~
  4. 汽车制造厂商使用大数据的5个思路
  5. matlab的disp函数如何换行
  6. 【学习ROS】linux安装并配置ROS环境
  7. quartus altera FIFO使用问题总结:rd_usedw和wr_usedw、rd_rst和wr_rst
  8. 智能多用型防虹吸性能试验装置正式研发成功
  9. [强化学习]-网络安全资料汇总
  10. torch的Variable