转载于:https://blog.csdn.net/andre617/article/details/53496490#%E8%84%9A%E6%B3%A8

由于YCM需要vim支持python,需要自己编译vim,所以建议先装YCM,关于YCM的安装比较多,单独写了一篇。

目标安装:

  plugin:管理vim插件

  auto-pairs:用于括号匹配

  NERDTree:显示目录树

  MiniBufExplorer:显示已打开文件

  ctags:建立代码索引

  taglist:列出代码的函数,变量,宏

准备工作

ubuntu安装

sudo apt-get install git

第一个插件pathogen

为了不让插件安装后目录显得凌乱,我们很有必要安装一个管理插件的插件,这样功能的插件有好几个,这里只推荐一个pathogen

项目地址
https://github.com/tpope/vim-pathogen

安装
可以通过git安装,也可以直接下载插件文件,由于这个插件只有一个文件,我们选择后者,而该插件的说明文档上也是用的这种方法。

mkdir -p ~/.vim/autoload ~/.vim/bundle &&
curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim

然后,就没有然后,这个插件就安装完了。是不是觉得so easy! 不过先别急,我们还要对插件进行一些配置,用vim打开~/.vimrc,输入如下三行类容

execute pathogen#infect()
syntax on
filetype plugin indent on

保存退出,这个插件的安装配置就完成了,怎么验证插件有没有生效呢,别急,后面有的是机会验证。我们先来讲讲vim插件是个什么东西。

此时你的~/.vim目录结构应该是这样的

├── autoload
│ └── pathogen.vim
└── bundle

可见~/.vim目录下是有两个目录,其中autoload放的是pathogen插件,所谓的插件其实就是一个脚本,当vim启动时,它会自动加载~/.vim/autoload目录下的脚本,由于你~/.vimrc里配置了execute pathogen#infect(),所以它会去自动的执行脚本里这个函数,至于这个函数是怎么实现的,我们不用管它,总之这个函数的功能就是去加载~/.vim/bundle目录下你安装的所有插件,pathogen的管理方法大致就是这样,而我们也看到,vim的插件其实就是一个脚本文件,丰富一点的还会带有说明文档等其它内容,后面我们碰到了再讲解。

auto-pairs

项目地址
https://github.com/jiangmiao/auto-pairs(感兴趣的可以看)

功能
自动匹配括号、引号等

安装

git clone git://github.com/jiangmiao/auto-pairs.git ~/.vim/bundle/auto-pairs

这样就将auto-pairs在github上的项目文件下载到了~/.vim/bundle/auto-pairs目录下

测试
随便打开一个文件,输入左括号’(‘,看右括号是不是自动出现了,然后删除左括号,看右括号是不是也被删除了。当然功能远不止这些,但常用的就这几点。

NERDTree

项目地址
https://github.com/scrooloose/nerdtree

功能
显示目录树

安装

git clone https://github.com/scrooloose/nerdtree.git ~/.vim/bundle

此时~/.vim/bundle/nerdtree下应该有如下几个目录和文件

autoload
doc
lib
nerdtree_plugin
plugin
README.markdown
syntax

这几个目录是vim默认的插件目录,如果我们不是通过pathogen加载插件,就需要在~/.vim目录下创建对应的这几个目录,并将NERDTree对应的文件拷到相应的目录,这样每个目录下会放置多个插件的内容,比如~/.vim/doc下就会放置所有插件的帮组文档,而我们通过pathogen来管理,每个插件的所有内容都放在同一个目录中,比如这里的NERDTree插件的内容我们下载到了~/.vim/bundle/nerdtree下,直接删除这个目录即可删除插件,如果后续插件有更新,在该目录下通过git命令也可以很容易更新到最新版本。

打开vim,在命令行模式下输入:Helptags载入插件的帮组文档,或者用:helptags help_dir载入指定目录的帮组文档,其中help_dir是你需要加载的插件帮组文档所在的目录,比如这里是~/.vim/bundle/nerdtree/doc

测试
用vim打开一个文件,在命令行模式下输入:NERDTree,然后回车,窗口左侧就出现了vim工作目录的目录树,如下图所示

将光标置于NERDTree窗口,按’?’可查看帮助,NERDTree的操作很简单,通常是将光标置于一个目录/文件上,通过一个按键来操作,下面列出几个常用按键及其对应的操作

文件相关操作
o : 在光标所在的上一个窗口打开文件,并将光标置于新打开的窗口
go : 预览文件,光标停留在NERDTree窗口中
t : 在新标签中打开文件并激活
gt : 在新标签打开文件,光标留在NERDTree窗口中
i : 水平分割打开文件
gi : 水平分割预览
s : 垂直分割打开文件
gs : 垂直分割预览 目录树相关操作
o : 展开/关闭目录
O : 递归展开目录。慎用,如果目录层级多,打开会很慢
x : 关闭父目录
C : 切换光标所在目录为根目录
u : 切换目录树的根目录为上层目录
U : 切换目录树的根目录为上层目录,并保持旧的目录树的状态
r : 刷新当前目录
R : 刷新当前根目录(这个在新加入文件后会用到)
cd : 切换vim工作目录为光标所在目录(命令模式下:pwd可查看当前工作目录)

为了方便打开NERDTree,我们可以设置快捷键,打开~/.vimrc,插入如下一行

map <C-n> :NERDTree<CR>

这样,当打开vim时,只要输入ctrl+n即可打开NERDTree

MiniBufExplorer

项目地址
http://www.vim.org/scripts/script.php?script_id=159

功能
显示已打开的buffer

安装
以6.3.2版本为例,根据项目地址可以找到对应版本的下载链接

mkdir -p ~/.vim/bundle/minibufexplorer/plugin && wget "http://www.vim.org/scripts/download_script.php?src_id=3640" -O ~/.vim/bundle/minibufexplorer/plugin/minibufexpl.vim

测试
用vim打开一个文件,此时看不到minibufexplorer窗口,因为默认是只有一个buffer时不显示窗口的,在命令行模式下通过:vsp filename打开另一个文件(或者用NERDTree浏览打开其它文件),看看此时窗口上方是不是出现了MiniBufExplorer的窗口,如下所示

我们先来解释一下什么叫buffer,vim为每个打开的文件都创建了一个buffer,这个buffer存储在内存中,为了下次打开文件时快速加载,比如我们通过NERDTree浏览并打开了多个文件,即便某些文件你退出了编辑,它的buffer仍旧是存在的,在命令模式下,我们输入:ls可以查看打开的buffer列表,每一行前面的数字对应buffer的编号,通过输入:b N,其中N代表buffer编号,可以打开对应的buffer。对应上面的截图,我们打开了两个文件,此时minibufexplorer窗口显示有两个buffer,即便我们关闭一个文件,这两个buffer仍然存在,将光标移到某个buffer的名称上,回车可打开对应的buffer,按d可删除buffer,具体的操作可以直接阅读插件文件,路径为~/.vim/bundle/minibufexplorer/plugin/minibufexpl.vim

配置
在~/.vimrc文件中加入如下命令

let g:miniBufExplMaxSize = 

该配置含义为minibufexplorer窗口最大高度为2行,默认是没有上限的,你打开的buffer足够多,一会一直增长下去,为了方便阅读我一般将它设为2,其它配置不怎么用到,需要用的时候可以参考插件文件,并在~/.vimrc中添加配置

minibuf间使用 Tab 移动

ctags

这个并不是插件,而是可执行程序,是用来对代码建索引,方便查找的,有些Linux版本是自带ctags的,如果没有,按如下方式安装

sudo apt-get install ctags

如果安装失败,看是不是因为/usr/bin/ctags文件已经存在,可以先mv走,然后再执行

创建索引:在你代码的根目录执行如下命令,会生成一个tags文件,此时在代码根目录下打开一个文件(vim默认只加载工作目录下的tags文件),将光标置于一个函数或结构体名字上,按ctr+]即可跳转到该名称的定义处,如果出现多个选项,可以输入编号选择对应跳转的地方,按ctr+o可回到光标之前的位置

ctags -R ./      递归扫描

转到函数定义 <C-]> 返回<C-T> 或 <C-O>

taglist

taglist是vim的一个插件,可以将代码内的函数、变量等按规律列出来,方便查找

下载地址
http://www.vim.org/scripts/script.php?script_id=273,或者直接按如下方式下载并安装

cd ~/.vim/bundle && wget "http://www.vim.org/scripts/download_script.php?src_id=19574" -O taglist.zip && unzip taglist.zip -d taglist

这样就生成了~/.vim/bundle/taglist目录,该目录的结构为

taglist
├── doc
│ └── taglist.txt
└── plugin
└── taglist.vim

其中plugin目录下为插件文件,doc目录下为说明文档。打开vim,在命令行模式下输入:helptags ~/.vim/bundle/taglist/doc可以加载说明文档,然后输入help taglist.txt则可以显示说明文档

配置
打开~/.vimrc,输入如下内容

let Tlist_Show_One_File=    " 只展示一个文件的taglist
let Tlist_Exit_OnlyWindow= " 当taglist是最后以个窗口时自动退出
let Tlist_Use_Right_Window= " 在右边显示taglist窗口
let Tlist_Sort_Type="name" " tag按名字排序

这几行配置看名字就能知道什么意思,引号后边是说明,在vim配置文件里,双引号代表注释,类似于C语言里的/

如果打开过程中出现问题,例如

Taglist: Failed to generate tags for /Users/Zorba/Dropbox/RubymineProjects/rcafe/app/controllers/posts_controller.rb /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ctags: illegal option – -^@usage:  
ctags [-BFadtuwvx] [-f tagsfile] file …^@

就要重新安装一遍ctags

VIM配置IDE的更多相关文章

  1. Vim配置IDE开发环境

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

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

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

  3. 将VIM配置成强大的IDE(二)

    将VIM配置成强大的IDE(二) 前面我们已经安装好了vundle这一款强大的插件管理工具. 下面,当然是配置我们需要的插件了. 在VIM下面通过命令 help vundle 我们可以知道,VUNDL ...

  4. vim配置轻量级IDE

    安装VIM 安装YouCompleteMe的时候, 需要VIM的版本比较高, 一般一些Linux长期支持版的Vim包就比较老, 所以可能需要编译安装. 卸载之前系统中安装的版本: CentOS/Fed ...

  5. 草稿-把vim变成IDE

    从昨天下午到现在一直在研究vim,初学者,从vim最基本的命令开始看起的.是通过vimtutor学习的. 看到最后一章的时候,发现原来vimtutor中的知识知识vim中的冰山一角,vim真正的强大之 ...

  6. vim配置总结

    本博文转自:http://www.cppblog.com/runsisi/archive/2013/04/06/199152.html? opt=admin 12年的最后一天配置了一下公司RHEL上的 ...

  7. kali2.0安装及使用笔记(附带vim配置,长期更新)

    作者:陈栋权 时间:16/08/19 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明, 且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 如有特别用途,请与我联系邮 ...

  8. 如何用Vim搭建IDE?

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

  9. acm的ubuntu (ubuntu16.04 安装指南,chrome安装,vim配置,git设置和github,装QQ)

    日常手贱把ubuntu14.04更新到了16.04,然后就game over了.mdzz,不然泥萌也看不到这篇博客了=.= 然后花了些时间重装了一个16.04版的,原来那个14.04的用可以用,就是动 ...

随机推荐

  1. ab (ApacheBench)命令

    ab (ApacheBench)命令 参数 -n 在测试会话中所执行的请求个数.默认时,仅执行一个请求 -c 一次产生的请求个数.默认是一次一个 -t 测试所进行的最大秒数 -k 启用HTTP Kee ...

  2. HihoCoder#1509 : 异或排序(二进制)

    题意 题目链接 Sol 挺简单的吧.考虑两个元素什么时候不满足条件 设\(a_i\)与\(a_i + 1\)最高的不同位分别为0 1,显然\(S\)的这一位必须为\(0\),否则这一位必须为\(1\) ...

  3. laravel的nginx配置

    最近阅读laravel官方文档 发现了关于nginx的推荐配置 Nginx 如果你使用 Nginx ,在你的网站配置中加入下述代码将会转发所有的请求到 index.php 前端控制器. locatio ...

  4. 来自SaberSama的HTML总结

    html 为什么要转过来呢? 因为我觉到,同样是一个初学者,应该互相学习,交流. html:是Hyper Text Markup Language的简写,即超文本标记语言. 网页的组成成分为HTML- ...

  5. IOS tableView的基本使用

    tableView  Style:Plain(头部标题 向上移 不会消失) tableView  Style:Grouped(头部标题 向上移 会 消失) #import "ViewCont ...

  6. jemter实战

    业务流梳理,需要实现的内容,含jdbc和正则表达式,和取值 1. 登录用户 2. 获取一个未分配的订单,判断是否是未分配 3. 获取配货单号 4. 分配配货单 5. 查询已分配的配货单 6. 查询包裹 ...

  7. maven如何实现创建带源代码的jar包

    实现目标 maven打包,在生成的jar包中带有源代码.记住,这个带源代码的意思是源代码跟编译生成的文件放在一个jar文件里面,而不是单独的一个XXX-source.jar包. 实现思想 把源代码当作 ...

  8. centos6.5下编译安装FFmpeg

    以下安装步骤基本来自官网,做个笔记以方便自己以后查看 http://trac.ffmpeg.org/wiki/CompilationGuide 1.安装依赖包 <span style=" ...

  9. 命令搜索命令whereis与which

    whereis 命令名 #搜索命令所在路径及帮助文档所在位置,只能搜索系统命令. 选项: -b: 只查找可执行文件 -m: 只查找帮助文件 whoami whatis ls #ls 是什么命令 whi ...

  10. Spring转换编码utf-8方式

    方式一:修改Spring配置文件(建议使用) <mvc:annotation-driven> <mvc:message-converters register-defaults=&q ...