通过简单的配置文件将 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. MVC布局页占位符@RenderSection("bscript", false)

    @RenderSection("bscript", false) //false表示不是必须填充 填充bscript占位符  @section bscript{}

  2. Oracle sql语言模糊查询--like后面的通配符

    关于like后面的条件,Oracle提供了四种匹配模式: 1,% :表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FR ...

  3. Lambda 表达式中的变量范围

    delegate bool D(); delegate bool D2(int i); class Test { D del; D2 del2; public void TestMethod(int ...

  4. HDU 2604 - Queuing

    长度为 n 有男有女的队伍里没有 fmf 和 fff 的序列有多少 判断最后一个人无法得出结论 于是判断最后两人的递推式: fm(n) =   mm(n-1) //最后两人为fm的长度为n的队伍 只能 ...

  5. UTF-8、GB2312都支持的汉字截取函数

    <?php/*Utf-8.gb2312都支持的汉字截取函数cut_str(字符串, 截取长度, 开始长度, 编码);编码默认为 utf-8开始长度默认为 0*/ function cut_str ...

  6. 区段extent及数据块

    一.区段是表空间中由某个段所使用的一块磁盘空间.他是一组连续的oracle数据块.引入extent的目的是为了减少磁盘空间分配的次数,如果是采用oracle数据块直接分配的话就增加了oracle磁盘空 ...

  7. ios html5 长按复制文本

    以前做的项目,主要是针对ios的,安卓上面也没有测试. 原理其实是系统自带的功能,那时候借鉴的其他网站,没有试验通过document.execCommand("Copy"),别的j ...

  8. python核心编程-第三章-个人笔记

    1.语句和语法 (1)反斜杠"\"表示语句继续.python良好的编程习惯是一行最后不超过80个字符,一行字符过多时便须用到反斜杠换行继续该语句. PS:在使用小括号.中括号.大括 ...

  9. Wolf and Rabbit(gcd)

    Wolf and Rabbit Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  10. ZigBee技术简介

    Zigbee的由来 在蓝牙技术的使用过程中,人们发现蓝牙技术尽管有许多优点,但仍存在许多缺陷.对工业,家庭自动化控制和遥测遥控领域而言,蓝牙技术显得太复杂,功耗大,距离近,组网规模太小等,……而工业自 ...