博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
==把VIM打造成开发C的IDE==
阅读量:2177 次
发布时间:2019-05-01

本文共 4109 字,大约阅读时间需要 13 分钟。

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

    VIM真的是个非常强大的工具,介绍一篇博文<<为何Emacs和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. 有了这二个插件会自动弹出提示,而不要按<C-X><C-U>. 大大减少了按键次数。

    * supertab 

        按tab键可以完成自动补全

    * code_complete

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

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

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

    * snipMate

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

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

    * c.vim

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

    * OmniCppComplete

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

    * a.vim 

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

    * crefvim.vim

        可以方便的查看标准C的文档,当你不知道使用某个标准库的函数要哪个头文件时,不知道需要什么参数时,按<leader>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语言,输入<leader>fd就可以把函数的原型添加到第一个函数前,或者自定义位置,当你修改了参数后也只要按快捷键,插件便会自动帮你修改!是不是也很方便呢?

    * headerguard.vim

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

    * valgrind.vim

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

2 工具类

    * SearchComplete

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

    * mark.vim 

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

    * visualmark

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

    * 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

你可能感兴趣的文章
iOS开发中Instruments的用法
查看>>
iOS常用宏定义
查看>>
什么是ActiveRecord
查看>>
有道词典for mac在Mac OS X 10.9不能取词
查看>>
关于“团队建设”的反思
查看>>
利用jekyll在github中搭建博客
查看>>
Windows7中IIS简单安装与配置(详细图解)
查看>>
linux基本命令
查看>>
BlockQueue 生产消费 不需要判断阻塞唤醒条件
查看>>
强引用 软引用 弱引用 虚引用
查看>>
数据类型 java转换
查看>>
"NetworkError: 400 Bad Request - http://172.16.47.117:8088/rhip/**/####t/approval?date=976
查看>>
mybatis 根据 数据库表 自动生成 实体
查看>>
win10将IE11兼容ie10
查看>>
checkbox设置字体颜色
查看>>
第一篇 HelloWorld.java重新学起
查看>>
ORACLE表空间扩张
查看>>
orcal 循环执行sql
查看>>
web.xml配置监听器,加载数据库信息配置文件ServletContextListener
查看>>
结构型模式之桥接模式(Bridge)
查看>>