Chinaunix首页 | 论坛 | 博客
  • 博客访问: 61938
  • 博文数量: 14
  • 博客积分: 1420
  • 博客等级: 上尉
  • 技术积分: 145
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-15 16:55
文章分类

全部博文(14)

文章存档

2010年(3)

2009年(11)

我的朋友

分类: LINUX

2009-09-09 10:34:38

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 以上

阅读(663) | 评论(0) | 转发(0) |
0

上一篇:用GDB调试程序

下一篇:ssh去掉密码提示

给主人留下些什么吧!~~