免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 859 | 回复: 0
打印 上一主题 下一主题

vi [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-09 10:34 |只看该作者 |倒序浏览

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
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP