在vim中,把idc文件,作为c文件来使用

author: hjjdebug

甲. 把idc 文件 按照 c文件来解析出tag,方便跳转

idc 文件 是ida 的脚本文件, ctags 并不能识别idc,
但其实idc 就是 c文件.
要让ctags 识别idc文件,一种简单方法是把后缀改为.c
但有时候这种简单方法是不方便的, 更好的办法是让ctags认为.idc文件
就是.c文件, 按照.c文件分析就可以了.

ctags 支持这种转换. 当然,是通过命令行参数告诉ctags 程序的.
1.简单粗暴的做法,将文件强制认为是某种类型的文件 --language-force
例如. 将该目录下所有文件都按c文件来解析
$ctags --language-force=c -R

2.优雅的做法是告诉它,某种后缀的文件请按某某类型文件来分析--langmap=map:
$ctags --langmap=c:+.idc –R

帮助:
ctags --help
man ctags

ctags 有三个list
 --list-languages   
       Output list of supported languages.
//列出所支持的各种语言, 不支持的可以添加噢,不过要修改定义的模板

 --list-maps=[language|all]  
        Output list of language mappings.
//查看各种语言所对应的文件名后缀, 也可以在这里把不同后缀添加到已知语言类型中,
//上面的例子就是这么做的

 --list-kinds=[language|all]
       Output a list of all tag kinds for specified language or all.
//可以控制ctags 都记录哪些内容, list 显示了它的默认kind.
ctags --list-kinds=c 可以看到,有的kinds 默认是关闭的.

乙. 在vim中使用.
打开idc 文件, :set filetype=c, 这样就有c 的高亮语法了.
就能在vim中查阅了, taglist 插件也能识别了.
更好的办法是放到.vimrc中, 在打开和创建文件时执行一个自动命令.
au BufRead,BufNewFile *.idc set ft=c tags+=~/include/tags
 

 

补充:

1. 为c++ kind 打开头文件定义, 用如下命令观察

 ctags --c++-kinds=+p --list-kinds=c++

2. 把.h 文件当成c 语言来解析. (参考前面描述)
ctags --langmap=c:+.h

3. 把.i 文件当成c++文件来生成tags

ctags --langmap=c++:+.i -R

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值