标签:python ide vim c++ c
俗话说,工欲善其事,必先利其器,去年开始做Linux C开发的时候,要SOURCE INSTGHT,eclipse,qt creator等开发工具上整了好久之后,没有一个合心意的,最后听说VIM,和EMACS加上插件之后会比较好用,但需要一个很漫长的上手时间,但还是比较想长期从事Linux方面开发的,另外即使在windows上也可以代替source insight来阅读ffmpeg的源码,转战vim,经过用了一年的时间终于将VIM打造成了至少让我觉得比source insight更顺手的程度。所有配置文件已经在github上共享出来。个人建议,如果不是想长时间做Linux上的开发,我觉得source insight通过samba服务来写Linux上的代码其实足够了。如果想在任何环境下,都可以游刃有余的玩转Linux里的C/C++代码,我觉得用我目前打造的这个VIM已经相当够用了。虽然把这个VIM直接装上比较容易,使用到觉得比SOURCE INSIGHT更顺手的程度肯定不是一两天的事。
目录
缘起 版本支持 使用范围 使用方法 相对于原生VIM定制的内容 新增快捷键 已知不足 交流
缘起
刚开始做Linux C/C++的时候试了很多编辑方式,包括: souce insight:通过Linux上的samba服务去写Linux主机里的代码(我觉得不通过定制版的vim和emacs之外最好的选择,一方面不需要打开虚拟机界面,另一方面souce insight写代码也确实挺好用的。 eclipse:很好用,但不得打开Linux图形界面,另外eclipse运行很慢,尤其大项目 qt creator:即使不是QT项目,当然也可以在Linux图形界面用QT CREATOR写代码,比eclipse运行快,当然如果是Linux下的QT项目当然QT creator也是首选。 VIM与EMACS:作为开发环境都要加跳转及自动补全类的插件。它们虽然功能上可能并没有其他IDE境强大,但其他IDE都需要打开很耗资源的图形界面,另外VIM和EMACS有很多其他IDE都不具备的好处,比如所有操作都不需要鼠标,能一键搜索等。另外它们都可以直接ssh到Linux主机然直接使用,缺点在于上手起来都较不容易。VIM与EMACS都可以无界限的加任何功能的插件,理论在一个上面能实现的功能在另一个上面一定能实现,不存在谁比谁强大的问题。从基本操作上个人还是更喜欢emacs,但因为折腾emcas插件比vim更难所以选择了vim。 这个VIM的定制是在一年的时间里逐渐完善起来的,其中一段时间转了emacs,后来折腾cedet实在没折腾不完善,也找不到谁用能交流下,所以最终回到了vim。这个vim定制的原则是尽量保持精简快速与更好的兼容性,但实现更多更强更实用更加人性化的功能。
版本支持
7.2及以上,暂未发现有兼容性问题情况。7.2以下版本的vim我没有见到过。
使用范围
作为c/c++和python开发,会有意想不到的效果,对shell脚本开发也还行,对于一般配置文件的修改或许会比原生好点,至少不会有变差的地方。
使用方法
把.vimrc和.vim文件夹拷贝到自己的家目录下就可以了。如果要用索引功能要装ctags和cscope,在ubuntu下安装apt-get install ctags && apt-get install cscope即可。在其他发行版这两个软件的包名一般也一样是ctags和cscope。
相对于原生VIM定制的内容
1.语法着色 2.desert主题 在背景在白色的情况下要改下配置文件里的background选项 3.设置256色显示模式 在终端支持256色的情况下才会显示的更好看。如果终端是8色的,那么显示的颜色不如将256色的设置去掉好看。screen下默认是8色,要改下screenr的配置脚本。 4.状态栏永久显示,屏幕右下角显示标尺 有些人喜欢每一行前加行号,但我一般不用,主要是状态栏上已经有了当前光标所在的行列。 5.显示对应括号 6.tab长度设置成4,另外将tab显示成坚线,在写python的时候很有用 7.设置自动选择utf8和cp936模式,减少出现乱码的可能 8.设置成非兼容VI模式 9.更好用的回退键 10.修正C++ class下public等标识符的缩进 11.增加NERD TREE文件列表功能 这个插件的功能非常强大,作为一个文件树只有你想不到的功能,没有它实现不了的功能。在原功能的基础上我添加了一个"w"快捷键,功能是使窗口宽度在固定宽度和最长行宽度之间切换。按F2键激活插件,具体使用请百度或谷歌。 12.增加tagbar函数列表功能 强大到不逊于任何一个开发环境的函数及变量列表 13.增加ctags及cscope索引 ctags和cscope的快捷键自己百度或谷歌,使用方式是在工程根目录下运行vim,之后按F5更新索引,然后就可以使用快捷键进行跳转了。我一般使用都是用ctags做定义的跳转,cscope用作查找一个单词在工程中所有出现的位置。 15.增加注释插件 支持的语言有N种,在它支持的语言范围内,"\cc"三个键可以注释当前行,如果某些行已经选中,那么将注释那些选中行。“\cu“用于反注释,用法一样。 16.增加omnicpp自动补全插件 vim的C/C++自动补全插件有很多,但这个很精简,包括CPU占用和物理文件占用。虽然功能更强大的,但配置复杂,而且可能兼容性不好。这个至少对于我来说够用了。这个补全在C/C++下在输入"."或"->“后会自动弹出可选择列表,python的自动补全我没有加新的插件,因为一般VIM安装都会自带PYTHON的补全插件,而且也相当强大了。只要在.可->后按c-x x-o就可以了,有些情况下机器上的VIM可能没有编译进PYTHON模块,那没有办法了。 17.增加头文件和实现文件切换的功能 快捷键是<F4> 18.增加搜索快捷键 可以一键显示出光标下单词在本文件中出现的次数和列表。
快捷键
F2 目录树 F3 函数列表 F4 头文件和实现文件切换 F5 更新ctags和cscope F6 更新cscope F7 在这个文件下搜索光标下单词以列表的形式显示 F8 关闭F7所打开的列表 F9 运行python F10 退出vim c-h, j, k, l可以在各个窗口间切换
已知不足
1.在文件未保存的情况下不可以跳转到其他文件 2.ctags在文件编码与终端编码不相同且跳转行有中文的情况下无法跳转
代码请看这里。https://github.com/langsim/VIM-IDE,觉得好的给点个星星哈。
打造超级VIM-IDE nerdtree ctags cscope a omnicpp python 乱码 tab 主题
原文地址:http://blog.csdn.net/langsim/article/details/41697287