通过简单的配置文件将 vim 打造成专业 ide,支持 mac linux cygwin。看过数篇 vim 配置文件,必要时去定制vim 的插件,将 vim 的 ide 用户体验尽量做到极致。

使用范围

系统要求:vim 7.2及以上版本,安装有ctags和cscope,完美支持linux, mac, cygwin. (mac下为更良好地用户体验,请将shell的描述文件成pro)
功能:浏览和编写c/c++, python项目
特点:安装绿色简单,功能可比source insight,但保持了原汁原味的vim。

安装方法

1.把.vimrc和.vim文件夹拷贝到家目录下,如果终端背景为白色,将.vimrc中background选项改为light。
2.安装cscope ctags。用apt-get安装: apt-get install ctags cscope(用yum安装: yum install ctags cscope, 用brew安装: brew install ctags cscope)

使用到的插件

tagbar         #函数变量列表(修改部分BUG,修改配置文件)
nerdcommenter  #注释功能(修改C语言默认用//注释,修改配置文件)
a              #切换头文件和实现文件(修改跨目录不能找到的问题,无修改配置文件)
nerdtree       #目录树(无修改,修改配置文件)
omnicpp        #C/C++的自动补全插件(无修改,修改配置文件)
bufexplorer    #当前打开的文件列表(无修改,无修改配置文件)
AutoComplPop   #自动弹出补全菜单 (无修改,无修改配置文件)                                            
SuperTab       #按tab补全 (无修改,无修改配置文件)

自己总结的浏览和编写C/C++工程的常规的使用方法

打开项目:
    cd到工程根目录下,vim (回车),必须是工程根目录。按F2打开文件列表,选择文件打开。
建立索引:
    第一次打开项目,及代码更新后按F7更新索引,这个索引与source insight中的更新索引意义相同。
浏览C/C++代码:
    浏览代码会常用的几个功能:
    1.跳转
        F3         通过tagbar函数列表跳转到当前文件的某个函数
        ctrl-]     跳转到光标下单词在工程中定义的位置
        gd         如果光标下单词是局部变量,按这个跳转到它定义的位置
        :tag word  跳转到word定义的位置     
        ctrl-2 g   跳转到光标下单词在/usr/include中定义的位置
        ctrl-h, j, k, l 光标在各个窗口间跳转
        %          在一个大小中括号跳转到对应括号
        [[         跳转到当前函数的开头
        ][         跳转到当前函数的结尾
        ctrl-o     回退到光标之前的位置。
        ctrl-i     按ctrl-o后返回。
    2.搜索
        ctrl-[ s   在整个工程里面搜索光标下单词,但不包括字符串和注释。
        ctrl-[ t   在整个工程里面搜索光标下单词,包括字符串和注释。
        :cscope find t word  在工程中搜索字符串word。
        <F5>       高亮光标下单词
        #          向上搜索光标下单词
        *          向下搜索光标下单词
        /word      搜索单词word
        /\<word\>  搜索单词word,并要求整词匹配
    3.切换到工程下的另一个文件
        F2         通过文件树跳转。
        F4         已经打开的文件列表
        F6         在头文件和实现文件两个文件切换。
        ctrl-[ f   跳转到文件名含有光标下单词的文件。
        ctrl-[ i   跳转到包含光标下单词对应文件的文件。
        ctrl-[ I   跳转到包含当前文件的文件。
编写C/C++代码:
    1.替换功能
        :%s /word1/word2/g 将这个文件里的word1替换成word2。
    2.对齐代码
        =          对齐选中行代码
        ==         对齐当前行代码
        gg=G       对齐整个文件
    3.注释及反注释
        ,          注释选中行
        .          反注释选中行

TODO

1.ctags在文件编码与终端编码不相同且跳转行有中文的情况下无法跳转
2.在cygwin下在同时打开nerdtree和tagbar的情况下退出,退出会出错

缘起

刚开始做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定制的原则是尽量保持精简快速与更好的兼容性,但实现更多更强更实用更加人性化的功能。

Vim 扩展工具 vim-ide (转)的更多相关文章

  1. 只有文本编辑器才是王道, 什么ide都是evil的浮云, 看看linus linux的内核开发工具vim emacs

    只有文本编辑器才是王道, 什么ide都是evil的浮云, 看看linus linux的内核开发工具vim emacs [ide is evil] (http://i.cnblogs.com/EditP ...

  2. 【转】手把手教你把Vim改装成一个IDE编程环境(图文)

    手把手教你把Vim改装成一个IDE编程环境(图文) By: 吴垠 Date: 2007-09-07 Version: 0.5 Email: lazy.fox.wu#gmail.com Homepage ...

  3. Vim扩展YouCompleteMe插件

    在Vim中安装YouCompleteMe插件 一.安装前的说明: 1.确保vim版本>=7.4,若MAC OS,建议直接安装MacVim(8.0版本). ps:如果不想使用MacVim的GUI, ...

  4. Vim改装成一个IDE编程环境

      1 写在前面   Linux下编程一直被诟病的一点是: 没有一个好用的IDE, 但是听说Linux牛人, 黑客之类的也都不用IDE. 但是对我等从Windows平台转移过来的Coder来说, 一个 ...

  5. 04-手把手教你把Vim改装成一个IDE编程环境(图文)

    Linux下编程一直被诟病的一点是: 没有一个好用的IDE, 但是听说Linux牛人, 黑客之类的也都不用IDE. 但是对我等从Windows平台转移过来的Coder来说, 一个好用的IDE是何等的重 ...

  6. Openstack 实现技术分解 (3) 开发工具 — VIM & dotfiles

    目录 目录 前文列表 扩展阅读 前言 插件管理 Vundle 主题 Solarized 浏览项目目录结构 Nerdtree Symbol 窗口 Tagbar 文件模糊查询 CtrlP 代码补全 You ...

  7. Vim配置及说明——IDE编程环境

    Vim配置及说明——IDE编程环境 Vim配置及说明——IDE编程环境 1.基本及字体 2.插件管理 3.主题风格 4.窗口设置 5.目录树导航 6.标签导航 7.taglist 8.多文档编辑 9. ...

  8. 开发者和系统管理者最喜爱的开源工具Vim 起步学习的五个技巧

    多年来,我一直想学 Vim.如今 Vim 是我最喜欢的 Linux 文本编辑器,也是开发者和系统管理者最喜爱的开源工具.我说的学习,指的是真正意义上的学习.想要精通确实很难,所以我只想要达到熟练的水平 ...

  9. Use Vim as a Python IDE

    Use Vim as a Python IDE I love vim and often use it to write Python code. Here are some useful plugi ...

随机推荐

  1. Visual Studio常用的快捷键

      每次在网上搜关于VS有哪些常用快捷键的时候,出来的永远是一串长的不能再长的列表,完全没体现出“常用”二字,每次看完前面几个就看不下去了,相信大家都 有这种感觉.其实我们平时用的真的只有很少的一部分 ...

  2. mono for android 学习资料

    http://www.cnblogs.com/Hua-Min/tag/Android/

  3. CAA调试

    在需要调试的Module(*.m)上右键,选择属性,命令位置选择你的framework目录    路径选择对应工程目录下的\intel_a(或者Win64    --    64位机器) 然后就可以尽 ...

  4. python学习笔记:python字符串

    二.python字符串操作符 1. 对象标准类型操作符 Python对象的标准类型操作符一共就三种:对象值的比较.对象身份的比较.布尔类型.其中对象值的比较主要是大于.小于.不等于等的数学比较符:对象 ...

  5. MySQL实用基础笔记

    /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限验证登录MySQL */ mysq ...

  6. Python之路第十一天,高级(3)-Python操作 Memcached、Redis

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  7. Leetcode 100 Same Tree python

    题目: Given two binary trees, write a function to check if they are equal or not. Two binary trees are ...

  8. MYSQL select ....outfile.....from.....

    select .... outfile  'file_path' fields terminate by '\t' lines terminate by '\r\n' from table_name; ...

  9. 让Cocos2D-X的示例程序运行起来

    没有整理好,现在先标记下 安装好环境后可能遇到的问题: 1.cocos2d-X 2.0版本后创建的Android项目提示org.cocos2dx.lib.Cocos2dxActivity找不到问题 解 ...

  10. C 语言的可变参数表函数的设计

    在c语言中使用变长参数最常见的就是下面两个函数了: int printf(const char *format, ...); int scanf(const char *format, ...); 那 ...