2012年6月我写了myproject这个插件,还只是个半成品,不过凑合着也能用,就这样一直用下去了。每次想完善一下的时候就想着先凑合着用,等有时间再改,就这样居然拖了近两年……这次终于下定决心,利用过年前的空闲时间完全重写了myproject。其实真的写起来一天就搞定了,剩下几天都是测试、修复bug。 更新内容 最开始的版本是纯vimscript的,后来因为在windows下更新tags时会弹出命令行窗口就加入了一部分python代码,现在为了兼容性还是改回了纯vimscript,不再依赖python。 增加 :MPCreate 命令,可以通过此命令创建项目。 增加 :MPProjectList 命令,可以浏览、删除、载入通过 :MPCreate 创建的项目。 保存、载入Session的命令从 :MPSaveSession、:MPLoadSession 改成了 :MPSessionSave、:MPSessionLoad。 :MPCreate、:MPLoad、:MPSessionLoad、:MPSessionSave等命令都可以补全了。 去掉几个实用性不大的选项。 修改了部分变量名。 命令说明 :MPCreate 直接输入 :MPCreate ,myproject会让你输入项目的路径及名称,然后会将该项目保存到项目列表中。当你用 :MPLoad 载入项目时就可以利用Tab自动补全项目路径了。 加入”template”参数(即:MPCreate template),myproject会在项目中的project.vim文件中写入如下内容: “let g:MP_Ctags_Enable = 1 “let g:MP_Global_Enable = 1 “set cscopeprg=gtags-cscope “let g:MP_Cscope_Enable = 1 “let g:MP_Session_AutoSave = 1 “let g:MP_Session_AutoLoad = 1 “let g:MP_Write_AutoUpdate = 1 “let g:MP_Source_File_Ext_Name = “” 你可以按自己的需求去掉某个选项的注释。 加入”question”参数(即:MPCreate question),myproject会一一询问你是否需要开启某个选项,然后将结果保存到project.vim中。见下图:
阅读全文

我的项目管理插件myproject

发个我自己写的项目管理插件myproject,目前实现了针对项目手动/自动更新tags及cscope数据库、在项目中递归搜索等功能,自己用着还挺舒服的。 项目地址:https://github.com/jiazhoulvke/myproject 最开始的版本是纯vimscript的,受不了更新tags时老是弹出命令行窗口,所以改成了python的,用vim的应该都装了python,所以应该不算什么大问题。 使用方法没project插件那么复杂,只要在项目的根目录下面放一个叫project.vim的文件就行了。该方法来源于这里: http://easwy.com/blog/archives/automatically_update_ctags_tag_cscope_database/#comment-10782 ,project.vim不仅仅是项目标识,同时也是项目的配置文件。 在vim里cd到项目目录中,或者直接打开项目中的文件,然后用“:MPLoad”载入project.vim及tags、cscope数据库(假如存在的话)。 用“:MPBuildTags”可以建立tags或cscope数据库 用“:MPUpdateTags”更新当前文件的tags或cscope数据库 用“:MPSearchInProject 字符串”在项目中递归搜索。grep可用的话会调用grep,否则使用内部的vimgrep。 假如安装了NerdTree,可以用“:MPNERDTREE”直接打开项目根目录 在vimrc里写上“let g:MP_Write_AutoUpdate = 1”就会在每次保存文件时自动更新tags,想临时禁用自动更新的话就输入“:let g:MP_Update_Enable = 0” 一些用于配置的全局变量: " 项目文件名 let g:MyProjectFileName = ‘project.vim’ " 是否启用ctags let g:MP_Ctags_Enable = 1 " 是否启用cscope let g:MP_Cscope_Enable = 1 " 定义ctags的路径 let g:MP_Ctags_Path = ‘ctags’ " 定义cscope的路径 let g:MP_Cscope_Path = ‘cscope’ "设置grep的路径 " Tips: 如果是在windows下使用cygwin的grep的话,搜索结果中经常会出现警告,需要在系统中添加一个名叫CYGWIN,值为nodosfilewarning的环境变量 let g:MP_Grep_Path = ‘grep’ " 定义ctags参数,比如c++项目可以在project.vim中定义"–c++-kinds=+px" let g:MP_Ctags_Opt = “ " 在文件写入时是否自动更新tags let g:MP_Write_AutoUpdate = 0 " 是否自动载入项目文件 let g:MP_Bufread_AutoLoad = 0 " 是否允许更新tags(适合临时设置禁用或启用) let g:MP_Update_Enable = 1 " 是否允许载入tags(适合临时设置禁用或启用) let g:MP_Load_Enable = 1 " 需要建立tags的文件后缀名(可以针对不同项目在各自的project.
阅读全文

作者的图片

jiazhoulvke


Coder

China