从昨天下午到现在一直在研究vim,初学者,从vim最基本的命令开始看起的。是通过vimtutor学习的。

看到最后一章的时候,发现原来vimtutor中的知识知识vim中的冰山一角,vim真正的强大之处就是在于程序员可以随心所欲地配置它,使它易于自己使用。据说牛逼的人配置出来的比IDE还要方便使用。

之后再网上看配置vim的方法,有很多文章中提到用Autocomplpop、ctags、OmniCppComplete这三个东西,就可以简单地讲vim配置成类似IDE环境(虽然还比不上IDE,但笔记在记事本中已经方便很多了)。

网上很多文章也都有配置和使用的方法。

在这里稍稍整理一下昨天下午到现在的成果,以免忘记,有时间再详细整理。

首先Autocomplpop,是一个.vim文件,也就是vim的插件(plugin)文件,使用这个插件,在vim中就可以自动提示和补全。

这种提示和补全就是基于单词的,它不会区分是什么编程语言,仅仅就是看单词(我是这样简单理解的)。比如说你之写过一个名为stu_number 的变量,

下次你想在此输入时vim就会随着你的输入进行提示,按下回车就可以补全。但是vim并不知道stu_number 是个什么类型的变量,它仅仅知道你之前输入过这个东西,所以在此输入的时候就可以提示。

Autocomplpop的安装方法就是;1、下载autocomplpop.vim ,2、将这个文件移动到/usr/share/vim/vim74中去,3、重启vim

其次ctags是应该是一个独立于vim的东西,他并不是vim的插件。ctags的作用是建立一章tags表,表中记录了函数定义、宏定义等,这样当看到一个函数(应该只能是自定义的),不知道他的用法时,可以按ctrl+]键跳转到函数或宏的定义处。此外ctags也支持补全,不过必须按ctrl+n快捷键。

ctags的安装方法是:yum install ctags. 安装完成后,进入源代码的目录,执行ctags-R 之后目录中生成一个tags文件,vim就是根据这个文件定位函数和宏定义的。

OmniCppComplete的使用好像就是为了使vim可以在输入一个类或者结构体,然后输入"."时可以提示成员变量和函数,并可以自动补全。

OmniCppComplete的安装方法:下载.zip包,将其解压缩到~/.vim文件夹中即可。

仅仅是粗略整理一下一天的成果,很多知识还没理解透彻,很多想法也不完善。今后在使用vim的过程中,有时间再详细整理吧

草稿-把vim变成IDE的更多相关文章

  1. 如何让vim像IDE一样一键放大缩小字号?

    原创,转载请注明出处 在其他IDE中,比如codeblocks,按住ctrl,然后滑动鼠标滚轮就可以实现字体的放大缩小. 在强大的vim中code怎么能缺少这种功能?! 在vim插件库中查询一番,发现 ...

  2. Vim配置IDE开发环境

    我的vim IDE界面: 1.安装Vim和Vim基本插件首先安装好Vim和Vim的基本插件.这些使用apt-get安装即可:lingd@ubuntu:~/arm$sudo apt-get instal ...

  3. vim变ide

    如果你稍微写过一点代码,就能知道“集成开发环境”(IDE)是多么的便利.不管是Java.C还是Python,当IDE会帮你检查语法.后台编译,或者自动导入你需要的库时,写代码就变得容易许多.另外,如果 ...

  4. 如何用Vim搭建IDE?

    推荐:http://harttle.com/2015/07/18/vim-cpp.html 转自:http://harttle.com/2015/11/04/vim-ide.html 一年前我从Vim ...

  5. 让vim成为ide

    gvim的tabe标签页打开跟在同一个页面(标签中)打开,对buffer的影响都是一样的,都是增加新的buffer 可以认为gvim的命令行模式跟bash shell里的操作差不多 在命令行模式中通过 ...

  6. 保存vim的ide环境

    开发周期不是一两天, 要把当前的窗口布局, 命令历史/寄存器历史等保存下来,以便下次编写时快速恢复. 需要保存两个方面的信息: session: 保存窗口的view试图窗口布局, 和全局设置   :m ...

  7. vim 打造IDE

    1.MinBufExplorer 2.Ctags Ctags工具是用来遍历源代码文件生成tags文件,这些tags文件能被编辑器或其它工具用来快速查找定位源代码中的符号(tag/symbol),如变量 ...

  8. VIM配置IDE

    转载于:https://blog.csdn.net/andre617/article/details/53496490#%E8%84%9A%E6%B3%A8 由于YCM需要vim支持python,需要 ...

  9. vim 编辑器IDE版

    wget https://raw.github.com/ma6174/vim/master/setup.sh -O ma6174_vim_setup.sh && bash ma6174 ...

随机推荐

  1. Python学习-10.Python函数定义(二)

    在Python中定义函数的时候,可以使用参数默认值的方式定义函数 例子: def welcome(who,state='is',action='talking'): print(who,state,a ...

  2. 四.Jenkins的授权和访问控制

    默认的Jenkins不包含任何的安全检查,任何人可以修改Jenkins设置,job和启动build等.在多人使用的时候,显然会存在比较大的安全风险,所以需要配置Jenkins的授权和访问控制. [系统 ...

  3. 扫描指定ip的端口(C#)

    class PingExam { public static void Main() { Ping ping = new Ping(); string ip = "192.168.1.43& ...

  4. org.springframework.dao.CannotAcquireLockException解决

    java.sql.SQLException: Lock wait timeout exceeded 该异常为一个service中调用了另一个service,两个service对同一表进行操作,造成事务 ...

  5. django系列3.4-- request对象和response对象(未完待续)

    一.request对象 详细信息可以查阅django官方文档 共有五种请求相关的常用值 request.path_info 返回用户访问的url不包括域名 request.method 请求中使用的H ...

  6. jQuery--基本介绍与下载

    本篇内容: 1.jquery学习内容 2.jquery下载,引用 3.使用顺序 4.版本 5.jquery对象与DOM对象转化 jQuery认识: jQuery学习内容 选择器 筛选器 样式操作 文本 ...

  7. mongodb 备份脚本

    ###############备份脚本#!/bin/bash basepath="/data/backup/dump$(date +%Y%m%d%H%M%S)" if [ ! -d ...

  8. abstract方法必须在abstract类中 这句话是对的还是错的?

    对 参考文章:https://zhidao.baidu.com/question/435526297.html interface中所有的方法都是抽象的,抽象类中部分方法是抽象的 实现interfac ...

  9. LOJ#2882. 「JOISC 2014 Day4」两个人的星座(计算几何)

    题面 传送门 题解 我们发现如果两个三角形相离,那么这两个三角形一定存在两条公切线 那么我们可以\(O(n^2)\)枚举其中一条公切线,然后可以暴力\(O(n^3)\)计算 怎么优化呢?我们可以枚举一 ...

  10. 《快学Scala》第二章 控制结构和函数