Chinaunix首页 | 论坛 | 博客
  • 博客访问: 87287
  • 博文数量: 11
  • 博客积分: 1536
  • 博客等级: 上尉
  • 技术积分: 160
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-26 22:01
文章分类

全部博文(11)

文章存档

2011年(4)

2010年(2)

2009年(3)

2008年(2)

我的朋友

分类: LINUX

2009-06-06 16:31:53

由于经常在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 以上

文件: plugin.tar.bz2
大小: 7KB
下载: 下载
   
阅读(4668) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

djstava2012-02-28 16:00:06

,好东西啊