- 论坛徽章:
- 0
|
Vim插件a.vim的改进
![]()
由于经常在linux下写c,遇到了和大家一样的问题,就是经常需要在头文件和源代码之间跳转。由于两个文件不在同一个目录上,于是每次都是要直接打:e ../include/model/foo.h之类的。
后来在网上查到a.vim可以实现这个功能,于是马上down下来。经过实验和看源码发现,a.vim仅仅支持头文件和源码在当前路径,以及../source ../src ../include ../inc这4个目录下面。但是经常会有这样的目录结构:
prject:
|---model_a
|---model_b
|---include
|---model_a
|---model_b
对于这样的结构除非设置g:alternateSearchPath,否则没有办法。于是花了点时间对a.vim动个手术。改进如下:
1.找到EnumerateFilesByExtensionInPath函数
2.增加一行代码:
let parentPath = expand("%:p:h:t")
3.在if (pathSpec != "")之后添加如下代码:
let path = SID>ExpandAlternatePath(pathSpec . "/" . parentPath, a:relPathBase)
let pe = EnumerateFilesByExtension(path, a:baseName, a:extension)
if (enumeration == "")
let enumeration = pe
else
let enumeration = enumeration . "," . pe
endif
哈哈,以后在文件之间切换就方便了。
BTW: Vim中CTL+^可以在两个文件之间来回切换,等同:e #。这样就不用敲命令了。
该插件要求VIM 7.2 以上
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/66576/showart_2048784.html |
|