创作gtk源码级vim帮助文档 tags

缘由

那只有看到源码了。在linux源码上有个网站 http://lxr.linux.no /+trees, 可以很方面的查出相应版本的代码实现,gtk没有。那么就自己动手做一个。

我一直用vim,就想到了 ctags + vim + gtk3 相对应的源码包制作一个源码级帮助文档。

源码包准备

工作目录:/root/gtk/src
官方下载页面 (http://www.gtk.org/download/index.php) 选取下载链接,存入文档packages.url

1
2
3
4
5
6
7
8
#cat packages.url
#------------
http://ftp.gnome.org/pub/gnome/sources/gtk+/3.6/gtk+-3.6.4.tar.xz
http://ftp.gnome.org/pub/gnome/sources/glib/2.34/glib-2.34.3.tar.xz
http://ftp.gnome.org/pub/gnome/sources/pango/1.32/pango-1.32.6.tar.xz
http://ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/2.26/gdk-pixbuf-2.26.5.tar.xz
http://ftp.gnome.org/pub/gnome/sources/atk/2.6/atk-2.6.0.tar.xz
#------------

制作tags 脚本

这段脚本mkhelp.sh执行后,会在当前目录下生成 tags 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#cat mkhelp.sh
#----------------------------------
 
#!/bin/bash
# by haijie
# modified NO. : 001
 
wget -i packages.url
 
cf=tag.files
> $cf
 
for f in $(<packages.url) ;="" do="" tf="${f##*/}" tar="" xjvf="" $tf="" p="${tf%%.tar*}/`echo" ${tf%-*}|="" tr="" -d="" "+"`="" [="" "$p"="" ]="" &&="" find="" $pwd="" $p="" -name="" "*.[ch]"="">> $cf
done
 
ctags -L $cf
 
#------------------------------------------</packages.url)>

集成到 vim

直接写入~/.vimrc 太傻,因为每次都执行,我准备写成个函数,调用是才引入。在~/.vimrc中的code如下

1
2
3
4
5
6
“--------------------------
function!  Set_work_tag()
    set tags+=/root/gtk/src/tags
endfunction
nmap <silent> <c-j>w : call Set_work_tag()<cr>
”--------------------------</cr></c-j></silent>

使用

查看有关GTK的文件时,引入tags的快捷键为:Ctrl + j w;
在要查看的GTK的函数、宏、数据类型就使用vim的想对应的命令及其快捷键即可,
我爱用

  • Ctrl + w ]
  • :stslect

多余的话

这里只是用了 ctags ,在mkhelp.sh中加入cscope 就可以使用tag.files的文件列表制作更出色的代码提示。

创作gtk源码级vim帮助文档 tags的更多相关文章

  1. Net 通用权限管理系统源码 带数据库设计文档,部署说明文档

    Net 通用权限管理系统源码 带数据库设计文档,部署说明文档 包括数据库设计文档部署安装文档源码数据库文件 下载地址:http://www.mallhd.com/archives/1389

  2. 没必要看源码。。把文档学通就已经牛逼了(我们大多还是在应用层,还达不到研究的程度。附class与examples大全链接)

    [学霸]深圳-鑫 2017/7/11 13:54:07只是学习怎么用QT的话,不用看源码.看帮助文档就很好要学习编码风格与思路,就看看源码 [学神]武汉-朝菌 2017/7/11 13:54:39没必 ...

  3. 突发奇想之:源码及文档,文档包括源码---xml格式的源码,文档源码合并;注释文档化,文档代码化;

    目前源码和文档一般都是分开的,我在想为什么 源码不就是最好的文档么? 但是一般源码都是文本text的,格式化需要人为统一规范,所以源码中的文档在现实中不是那么的易于实践. 而且 源码 不能包括图片.附 ...

  4. 在eclipse中查看sources源码和JavaDoc帮助文档

    今天学习Netty的过程中,从官网下载的netty里面的内容如下: 其中jar文件夹里面的内容如下: 可以看到每一个具体的jar包就对应有一个sources.jar包,然后所有的帮助文档在javaDo ...

  5. QT210 Android4.0源码编译和烧录文档整理

    开发环境说明: Ubuntu 12.04 LTS 32bit 源码文件目录: 勤研光盘2013-5-4\4.0 https://github.com/jackyh (建议在Linux环境下通过git下 ...

  6. Activiti-5.3工作流引擎-源码解析(流程文档解析)

    前面我们通过BPMN20.xsd和Activiti自定义的XML Schema文件初步了解了业务流程模型的定义,那么现在我们来了解一下流程文档的解析过程,这个过程主要是通过代码解析来完成. 代码解析过 ...

  7. MapReduce的MapTask任务的运行源码级分析

    TaskTracker任务初始化及启动task源码级分析 这篇文章中分析了任务的启动,每个task都会使用一个进程占用一个JVM来执行,org.apache.hadoop.mapred.Child方法 ...

  8. 源码级调试的XNU内核

    i春秋翻译小组-FWorldCodeZ 源码级调试的XNU内核 无论你是在开发内核扩展,进行漏洞研究,还是还有其他需要进入macOS / iOS内核,XNU,有时你需要附加调试器.当你这样做时,使用源 ...

  9. MapReduce的ReduceTask任务的运行源码级分析

    MapReduce的MapTask任务的运行源码级分析 这篇文章好不容易恢复了...谢天谢地...这篇文章讲了MapTask的执行流程.咱们这一节讲解ReduceTask的执行流程.ReduceTas ...

随机推荐

  1. iOS开发之使用Ad Hoc进行测试

    由于最近某个项目需要给别人测试,使用的是Ad Hoc方法 首先登录开发者官网配置证书 1.添加Certificates,从电脑获取certSigningRequest然后添加进去 2.在Identif ...

  2. c语言利用指针计算字符串的长度

    可以用strlen函数,这里我们自己写一个. 注意:不能用scanf,scanf一遇到空格就认为输入结束.应该用gets(),遇到换行符或EOF结束.说明可以接受空格. #include<cst ...

  3. PredictionIO Open Source Machine Learning Server

    PredictionIO Open Source Machine Learning Server Build Smarter Software with Machine Learning Predic ...

  4. java调用163邮箱发送邮件

    1:注册一个163邮箱,http://mail.163.com 调用发送邮件代码,查询smtp.163.com,作为发送邮件的服务器ip,类似的邮箱服务器应该也可以. MailSenderInfo m ...

  5. 获取CPU序列号

    public string GetCPUSerialNo() { string cpuSerialNo = string.Empty; ManagementClass managementClass ...

  6. android的四种加载模式

    在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作.在Android中Activity的启动模式决定了Activity的启动运行方式. An ...

  7. 简单区分`:before`与`::before`的区别

    简单区分:before与::before的区别 :hover我们都知道,称作伪类,英文名pseudo-class,而我们此处提到的:before以及:after也是伪类,属于css2的内容,在ie8下 ...

  8. 将 mp3 等音乐资源以资源形式嵌入 exe 文件中

    引用:http://www.easyx.cn/skills/View.aspx?id=6 本文讲解怎样将 mp3 等音乐资源以资源形式嵌入 exe 文件中,并通过 mciSendString 调用.嵌 ...

  9. 类作为返回类型 ,具有java特点-封装等 而且应用起来很方便。

    public class StudentDao { public Student getStudent(){ Student stu = new Student(); stu.setName(&quo ...

  10. 强化一下开源库:Synopse

    http://synopse.info/fossil/wiki/Synopse+OpenSource 有空要研究一下,只有写在这里,才会时时刻刻提醒自己.