打造超级VIM-IDE nerdtree ctags cscope a omnicpp python 乱码 tab 主题

俗话说,工欲善其事,必先利其器,去年开始做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,觉得好的给点个星星哈。

代码请看这里。https://github.com/langsim/VIM-IDE,觉得好的给点个星星哈。


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。