1、在工程目录下创建工程文件

touch project.exvim
project为工程名称,可任意起,支持多个不同的工程配置
一个项目中可以拥有多个 .exvim 文件,允许你在一个项目中运用不同的配置;

2、编译工程

vim project.exvim打开工程文件

进入vim命令模式输入Update命令更新工程配置

:Update

初始时候ex-project窗口为空,将鼠标定位到ex-project输入<leader>R刷新工程,<leader>r命令刷新目录

<leader>R <==> '\'+R (区别大小写)
<leader>r

3、初始化配置

工程类型
project_type = all -- { all, build, clang, data, doc, game, server, shell, web} 

工程设置
version = 11
project_name = 'nginx'

文件和文件夹过滤
folder_filter_mode = exclude -- { include(包含模式), exclude(排除模式) }
folder_filter +=    -- {src,core中间用逗号分割}
file_filter += __EMPTY__,c,h,cpp -- {文件后缀,__EMPTY__为无后缀文件,如Makefile}
file_ignore_pattern +=

编辑
tabstop = 4

编译
builder = gulp -- { gulp, grunt, gcc, xcode, vs, unity3d, ... }
build_opt = ''

工程目录ex-project Options:
enable_project_browser = true -- { true, false }
project_browser = ex -- { ex, nerdtree }

搜索插件ex-gsearch Options:
enable_gsearch = true -- { true, false }
gsearch_engine = idutils -- { idutils, grep }

ctags插件-- ex-tags Options:
enable_tags = true -- { true, false }
enable_symbols = true -- { true, false }
enable_inherits = true -- { true, false }

cscope插件ex-cscope Options:
enable_cscope = true -- { true, false }

下面的2个插件不知道做什么用的
-- ex-macrohl Options:
enable_macrohl = false -- { true, false }

存储文件的缓存
-- restore buffers:
enable_restore_bufs = false -- { true, false }

4、ex-project文件夹相关操作

文件夹折叠打开(vim内置命令)

(1)打开和折叠整个工程
    zO(打开)
    zM(折叠)
(2)打开和折叠当前文件夹
    zo(打开)
    zc(折叠)
(3)文件夹之间的切换
    zk或者<ctrl-k>或者[{ (下一个目录)
    zj或者<ctrl-j>或者]} (上一个目录)
    h,j,k,l(左下上右)
    arrow keys(方向键移动)
    %匹配{}括号队

文件打开

(1)直接打开
    <enter>直接回车
(2)打开文件浏览器
    <shift-enter>
    ex-project will use the OS's file browser, and open the folder in it.
    This is very useful when you trying to operate files in a folder.
(3)在文件目录中定位当前打开的文件
    <leader>fc
(4)创建新文件
    ex-project文件或者目录之下输入'o'创建新文件
(5)创建新目录
    定位到ex-project目录上输入'O'创建目录

5、ex-gsearch全局搜索
配置更新:Update之后,exvim会产生ex-gsearch所使用的ID文件

(1)vim自带搜索
    :/和:?
(2)搜索
    <leader>gg 搜索当前光标所在位置的关键字
    :GS <word> 命令行搜索
(3)过滤
    <leader>r 过滤出包含过滤关键字的内容
    <leader>d 过滤出不包含过滤关键字的内容
    <leader>fr 过滤出包含过滤关键字名称的文件
    <leader>fd 过滤出不包含过滤关键字名称的文件
    u显示上次过滤结果
    <ctrl-r>显示下次过滤的结果

6、ex-tags标签和ex-symbol符号

(1)Update命令更新
(2)跳转命令
    ctags:<ctrl-]和:ts tag-name跳转命令
    ex-tags:<leader>] 和:TS tag-name
(3)符号查询
    <leader>ss 列举所有的symbols
    <leader>sq 打开symbol窗口,并显示最后一次的symbols列表
    <leader>sg 使用当前光标下的单词作为搜索tag,列出所有匹配项
    :SL <your-tag> 使用<your-tag> 作为搜索tag,列出所有匹配项
(4)过滤
    <leader>r 移除symbol窗口中不包含Vim搜索模式的项
    <leader>d 移除symbol窗口中包含Vim搜索模式的项

7、ex-hierarchy类继承

印和显示类继承图
:HV <class>: 将会显示<class>的子类和父类.
:HVP <class>: 将会 <class>的父类.
:HVC <class>: 将会<class>的子类.

注意: 生成的图片保存在 .exvim.your-project/hv.png, exVim 将尝试使用你默认的图片浏览器打开它。
8、配置文件


.vimrc
.vimrc.plugins
.vimrc.plugins.local
.vimrc.local.

先被载入的文件是 .vimrc,我们都熟悉它。在 .vimrc 配置你的 vim 之前,它会在同一个目录检查是否存在 .vimrc.plugins 然后载入它。这是 exVim 插件的默认设置。在 .vimrc.plugins 被运行后, .vimrc.plugins.local 会被载入。在它之后,.vimrc 才开始使用自己的设置,在最后,它会检查并载入 .vimrc.local

工程窗口打开和关闭快捷键

nnoremap <unique> <silent> <F3> :EXProjectToggle<cr>

NERDTree打开和关闭快捷键:

nnoremap <unique> <silent> <F2> :NERDTreeToggle<cr>

附件exvim.md