===
请保证路径中没有空格
我的vim配置,所需要的文件全部在这个项目中,包括一些自己编写的,常用的脚本。
- normal 模式下,用
NT在窗口右侧打开资源管理器NERD_tree - normal 模式下,用
Tl在窗口左侧打开函数列表taglist - input 模式下, 用
<Ctr>+X+O自动补全('omnifunc'补全)(推荐) - input 模式下, 用
<Tab>自动补全('superTab'补全) - input 模式下, 用
<Ctr>+X+N自动补全(查询本文件关键字) - input 模式下, 用
<Tab>自动补全(tab补全)(遍历所有头文件,较慢) - normal 模式下, 用
<Ctr>+F8将语言切换至 cp936 - normal 模式下, 用
<Ctr>+F9将语言切换至 utf-8(默认语言) - 选择模式下, 用
ga进行对齐,(失败处理方法请参照下面的常见问题处理)vim-easy-align - 新增插件放到 vimfiles/bundle/ 下就行 pathogen
- 启动时候能够根据项目类型(cpp/php)选择性加载库文件
- cpp tags:glibc/stl/linux kernel head file/zeromq head file/
- normal 模式下, 用
F5设置当前项目类型(cpp/php) - normal 模式下, 用
F12更新当前的 tags、cscope文件 - 创建自定义项目
- 打开 VIMPROJ:win下面使用todo.bat 打开 cmd,调用
buildproject.bat projectname就会创建空白的项目模板;mac/linux 采用buildprojet.sh projectname达到同样目标; - 按照空白项目模板修改项目文件 projectname.vim;
- 执行 VIM/PROJ/projectname.bat(sh),打开创建的项目
- 打开 VIMPROJ:win下面使用todo.bat 打开 cmd,调用
扩展功能,(需要安装 Cygwin):
- 启动项目时候打开最近修改的文件
- normal 模式下, 用
F7自动上传 全部 or 上次上传之后修改过 文件
- 下载本工程并覆盖在 vim根目录(文件路径如下)(vim根目录不能含有空格)
/Vim/
|+ExtTool/
|+Font/
|+vim73/
|+vimfiles/
|+VIMPROJ/
|-_vimrc
`-README.md
- 设置 VIMPROJ 系统变量为 [your dir]/Vim/VIMPROJ
- 将 [your dir]/Vim/vim73 添加至系统变量
- 将
/usr/local/bin;/usr/bin;添加至系统变量 $PATH 的头部 - ctags(Universal ctags) 和 cscope 在 ExtTool/ 中, 解压之后,将其所在的路径放到系统PATH中就可以了。(不要求在 vim 中,最好路径名称是英文)(Universal ctags最新版本下载链接)
- win系统:启动gvim,命令模式输入(注意包含第一个冒号)
:e $home/_vimrc(修改_vimrc文件),输入(注意不包含冒号):source $VIMPROJ/vimrc/_vimrc,保存退出 - Mac系统:启动gvim,命令模式输入(注意包含第一个冒号)
:e $home/.vimrc(修改.vimrc文件),输入(注意不包含冒号):source $VIMPROJ/vimrc/_vimrc,保存退出 - 初始化本项目以来的外部模块.在[your dir]/Vim 目录执行
git submodule init && git submodule update - (非必须)字体可以在 Font/ 中,自己安装到系统Font就可以。
- (扩展功能)安装 cygwin, 安装 ssh 工具;
- (扩展功能)设置 ssh通讯,参考: Linux(Centos)配置OpenSSH无密码登陆
- (扩展功能) 设置系统变量 CYGWINPATH,值为 cygwin 的 mintty.exe 坐在的路径;
- (扩展功能)sh的启动方式默认设成 cygwin的 mintty.exe;
- (扩展功能) 首次配置需要手动调用初始化命令,命令行模式输入(注意包含第一个冒号)
:call dein#install()、:call dein#recache_runtimepath()
- 启动后提示找不gvim.exe: 请查看是否将 vim/vim73 添加到系统目录
- 启动后无法打开最近修改的文件,报一串错误提示: 请查看
/usr/local/bin;/usr/bin;是否在 $PATH 头部,如果添加了还不解决,请下下一条. - 启动时候弹框标红,很多时候是因为脚本文件变了 Window格式导致的,将脚本转成unix即可。解决方法:启动cygwin,输入"cd $VIMPROJ/Tool/;dos2unix *.sh;dos2unix *.vim;";
- stl库自动补全功能不能用,例如
inserter()使用<Ctr>+X+O并没有提示: 请添加std::或者using namespace std;,一般是因为类没有添加导致的。已经将(原因是在InitCPP设置std,_GLIBCXX_STD配置到默认类中,但是不知为何不起作用OmniCpp_DefaultNamespaces没加g:前缀,导致设置失败。 ga命令无法使用,请查看路径$VIMPROJ/../vimfiles/bundle/vim-easy-align/是否为空。如果是空,有两种解决方法:①可以手动下载 vim-easy-align 到此目录; ②可以使用git submodule update,git会自动更新此子模块。
当前支持两种类型的项目cpp,php。如果写好项目配置文件,通过批处理脚本启动,则能够:
- 启动时候自动打开项目中最近修改文件
- 根据项目类型
cpp,php使用最合适的函数匹配功能,自动补全功能,自动上传功能
- 进入
$VIMPROJ\PROJ文件夹,可以看到下面的文件:
$VIMPROJ/VIMPROJ/
├── buildprojet.bat
├── buildprojet.sh
├── PROJ
│ ├── buildprojet.sh
│ └── template.bat.bak
├── template.vim //项目模板文件
├── todo.bat //快速启动cmd
2.双击 todo.bat 启动window的 cmd。 在在命令行下输入 buildprojet.bat [projectname],例如创建项目 foo。那就输入buildprojet.bat foo,回车后会自动创建项目描述文件并进入编辑模式。此时,文件变动为:
$VIMPROJ/VIMPROJ/
├── template.vim //项目配置模板
├── todo.bat
├── buildprojet.bat
├── foo.vim //新建的foo项目描述文件
├── PROJ
│ ├── buildprojet.sh
│ ├── BY_Hkqp.bat
│ ├── foo.bat //新建的foo项目启动脚本
3.项目文件的说明
1 "这个文件试图使得创建 VIM 项目更加简单方便。
2 "①常用的全局设置已经在 _vimrc中设置了
3 "②常用的CPP设置在InitCPP.vim中设置
4 "③还有一些每个项目私有的设置,比如说项目的根目录,启动时需要打开的文件,一键上传的目录配置等
5 "③‘项目的私有设置在这个文件进行设置。
6 "
7
8 "初始化Main函数
9 source $VIMPROJ/Tool/main.vim
10 function! InitWorkSpace()
11 "let g:proj_type="cpp" //创建CPP项目,则将此前面的注释 " 去掉
12 "let g:proj_type="pkm" //非公共项目
13 "let g:proj_type="php" //创建php项目,则将此前面注释 " 去掉
14
15 let g:SSHRemoteBaseDir="/usr/server/Mahjong.gb/Borrow/Compile" //F7 自动上传远程路径
16 let g:SSHUSER="[email protected]" //F7 自动上传远程服务器用户名及IP
17 let g:SSHPORT=3600 //F7 自动上传端口
18 endfunction
19
20 "Main函数中的参数是项目所在的根目录
21 call Main("E:/E_temp/foo") //项目所在路径,注意"/"分隔符号
按照以下步骤修改这个项目文件:
1. 修改 第 21 行, Main 函数里面的路径,将其改成**项目代码所在的路径,window下注意将字符“\”,更改成“/”**;
2. 如果是C++代码,则将第 11 行的注释符 " 去掉;
3. 如果是php 代码,则将第 13 行前面的注释符 " 去掉;
4. 其他配置无需改动,保存退出项目文件,进入下一个步骤。
4.配置好之后,下次启动,直接使用 foo.bat(文件生成在 $VIMPROJ/VIMPROJ/PROJ/ 下面) 就可以自动打开项目。
5.可以通过这个文章 将PROJ文件夹放置在工具栏上,方便使用。
6.项目模板文件是template.vim,你可以把你常用配置写到里面,这样以后再创建新项目,会更方便。
- 打开gvim,输入项目路径。例如输入:
:cd E:/E_temp/foo, 将E:/E_temp/foo设成当前工作目录; - normal模式下,用
NT在窗口右侧打开资源管理器NERD_tree - normal模式下,用
Tl在窗口左侧打开函数列表taglist - normal模式下,用
F5,在弹出窗口选择 项目类型。 - normal 模式下, 用
F12更新当前的 tags、cscope文件 - 注意这种方式下自动上传功能不可用;
- 点击项目启动脚本
foo.bat,启动失败,请先看看配置文件中的项目路径中的"\"是不是改成了"/".
TODO:将来可能讲自动上传模块独立出来,现在还没做~
Enjoy~