Project.vim

之前想要 gedit 上的 F9 功能,在窗口左侧列出文件目录,展开点选打开文件。这个在 gedit 上也是用一个插件实现的,不过目前好像成了默认启用的插件,以前不是。

我讨厌在 vim 里面每次都打全路径,特别是在 web 开发的时候,要编辑的文件分散各处。看 byte of vim 书的时候试用 Project.vim 插件,提供类似功能。不过开始还是遇到了些小麻烦。装好插件后,运行 :Project 会在左侧开一个窗口,书上说这时候键入 \\c 就可以创建一个项目,按照提问一步步输入后,出来的项目只有当前目录下的文件,并没有子目录的入口。搞了很久,hui 说看了文档,应该是大写 C,也就是用 \\C 创建项目,书上笔误。唯一差别就是大写的使用递归,正是我要的。

但如果每次开始的时候都这么创建一遍,岂不麻烦。既然文档说默认使用 ~/.vimproject 文件保存项目入口等信息,那一定有办法用别的文件。于是照着例子写了个配置文件 testing.vim,运行 :Project testing.vim 加载,但同样没有子目录和文件入口。几番迷糊试验之后,忽然发现 testing.vim 内的格式被我篡改为不小心乱敲的一些字符,这才恍然意识到,\\C 后左侧的窗口本质上是打开了 testing.vim 文件进行编辑,只不过将其内容作特定解释,将相关的操作也作了额外的绑定罢了。所以 testing.vim 里面项目入口只会根据文件里定义好的来。所以之前网上搜到过一篇文章,说用 python 写脚本递归生成 project 格式的项目文件,其实大可不必,直接用 \\C 建个新项目,于是所有的入口都有了,再保存为 app.vim 就可以了。以后再开始的时候只需要指定加载这个项目文件;如果项目中的目录文件有变化,\\r 刷新一下,再保存好就可以了。