其他特性: o 在项目中实时加载或卸载文件(\l, \L, \w, and \W) o 在项目中所有文件进行全局搜索(\g and \G) o 对某一个文件单独执行用户指定的脚本(可以利用这个特写来关联一个文件到 某一个外部程序) (使用\1 到 \9) o 对所有文件执行某个用户指定的脚本(使用\f1-\f9 和 \F1-\F9) o 用户高可定制性 o 可以配合 |netrw| 插件使用 XXXX://... 管理远程项目. XXXX 代表 ftp, rcp, scp, or http.
CD= 表示在项目中选定一个文件时 Vim 将要进入的目录(相当于使用|:cd|). 这对在需要 使用本地 Makefile 文件进行编译时, 如|:make| 非常有用. 使用 CD=. 表示 Vim 将 {projpath} 及其等价路径设为当前工作目录. 如果不设置 CD 的值将无法中在项目中进 行目录都切换, 注意 "=" 的两边没有空格. CD 参数也可以是来自其父目录下都一个相对 路径. 参考 |project-inheritance| 中的例子. 在使用 |netrw| 浏览项目时该指令将被 忽略. 在 {projpath} 中可以使用空格.
in= 和 out= 用来在进入或者退出文件缓冲时执行特定的 Vim 脚本. (参考 |BufEnter| 和 |BufLeave| 自动命令事件). 它可以使用 Vim 脚本来为项目设定或取消一定的环境. 例如:
in.vim: > let $PROJECT_HOME='~/my_project' " Put the compiler in $PATH if $PATH !~ '/path/to/my/compiler' let $PATH=$PATH.':/path/to/my/compiler' endif
out.vim: > " Remove compiler from $PATH if $PATH =~ '/path/to/my/compiler' let $PATH=substitute($PATH, ':/path/to/my/compiler', '', 'g') endif
在这种情况下, 在合适的环境下可以使用 :make 进行编译你正在编辑的文件. 如果脚本中 使用的是相对路径, If the path to the script is relative, then it is relative from {projpath}. 如果子项目没有另行设定, 这些指令会被子项目继承. 当配合 |netrw| 插件使用时, in= 和 out= 中的路径必须是绝对路径.
b 设置后将使用 |browse()| 通过浏览目录来为 \c 和 \C 设定目录. 默认关闭, 因为窗口浏览器本身不允许进行目录的选择.
c 设置后, 在项目窗口中打开文件后会自动关闭项目窗口.
F 显示浮动项目窗口. 关闭窗口的自动调整大小和窗口替换. This allows placement between other windows that wish to share similar placement at the side of the screen. 在使用外部窗口管理器的时候很有用.
g 设置后会将切换打开和关闭项目窗口映射到 上.
i 设置后, 当选择打开一个文件时会在命令行显示文件名和当前工作路径.
l 设置后, 项目插件在选择一个要打开的文件时,使用命令 |:lcd| 替换默 认的 |:cd| 命令去改变目录. 在有了下面的 L 标志位后, 此标志已经 用处不大.
L 与标志位 l 很相似. 不管缓冲是否被使用, 它通过安装一个进入/离开 缓冲的自动命令|:autocommand| 来确保当前工作目录更改到 CD 参数 指定的目录.(|:lcd| 命令只能为窗口而不能为缓冲改变当前工作目录)
m 在常规模式下开启 |CTRL-W_o| 和 |CTRL-W_CTRL_O| 映射, 使得当前 缓冲区成为唯一可见的缓冲区, 但是项目窗口仍然可见.
n 设置后将在项目窗口中显示行号.
s 设置后将在项目窗口中使用语法高亮.
S 设置后将在更新和创建项目时启用排序.
t 设置后将在按空格 或鼠标右击 时候进行原窗口 和加宽窗口之间的切换. 参见 See the entry for in |project-mappings|.
T 设置后, 子项目的折叠在更新时会紧跟在当前折叠下方显示(而不是其底 部).
v 设置后将, 按 \G 搜索时用 :vimgrep 取代 :grep.
g:proj_run1 ... g:proj_run9 包含一个作用于文件的 Vim 命令, 参考前文中关于 \1 to \9 的映射. %f 替换文件的全路径和文件名 %F 替换文件的全路径和文件名 is 替换文件的全路径和包含空格的文件 %n 只替换文件名 %N 只替换包含空格的文件名 %h 替换项目主目录 %H 替换包含空格的项目主目录 %r 替换与 CD 目录相关联的路径 %R 替换与包含空格的 CD 目录相关联的路径 %d 替换 CD 目录. %D 替换包含空格的 CD 目录 %% 未使用
例如, 如果在 vimrc 中做了如下设置, 在当前光标下按下 \3 时将调 出 gvim : > let g:proj_run3='silent !gvim %f' < 其他的几个例子: > let g:proj_run1='!p4 edit %f' let g:proj_run2='!p4 add %f' let g:proj_run4="echo 'Viewing %f'|sil !xterm -e less %f &" < 在 Windows 系统中应用单引号括住 %f, %h, %d 以避免 \ 引起的转义.
g:proj_run_fold1 ... g:proj_run_fold9 包含一个作用于折叠内文件的 Vim 命令. 参考前文中关于 \f1 to \f9 和 \F1 to \F9 的映射部分.$HOME/.vimproject_mappings %f 替换文件名, %h 替换项目的主目录, %d 替换 CD 目录. 对应多个文件名有两种处理方式: