创作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. Qt序列化格式分析(qint,QString)(非常简单好用)

    最近项目需要进行QT开发环境下对传输对象进行序列化与反序列化处理,对基本类型的处理在使用QT默认的序列化方式还是完全手工序列化这两种方式之间有些犹疑不定,边想了解下QT默认序列化基本类型的格式,项目中 ...

  2. perl 传递对象到模块

    perl 中的对象 就是引用 通过new方法传递数据结构给各个模块 [root@wx03 test]# cat x1.pm package x1; use Data::Dumper; sub new ...

  3. Java7新特性(一)Coin

    1.语法糖 数字下划线   2.switch语句中的String   3.multicatch   4.final重抛 对比上份代码   5.try-with-resources(TWR) AutoC ...

  4. 如何使用springmvc的@requestbody 返回json数据

    先配置 XXX_ servletxml <!-- 整合jackson 返回一个json格式 --><bean class="org.springframework.web. ...

  5. perl encode_json 会产生 UTF-8 (binary) string decode_json 需要一个 UTF-8 (binary) string

    encode_json $json_text = encode_json $perl_scalar Converts the given Perl data structure to a UTF-8 ...

  6. 基于visual Studio2013解决面试题之1109全排列

     题目

  7. C语言指针和数组知识总结(上)

    C语言指针和数组知识总结(上) 一.指针的基础 1.C语言中,变量的值能够通过指针来改变,打印指针的语句符号可以是:  %08x 2.指针的本质 指针的本质就是变量,那么既然是变量,那么一定会分配地址 ...

  8. Principle of Computing (Python)学习笔记(5) BFS Searching + Zombie Apocalypse

    1 Generators   Generator和list comprehension非常类似 Generators are a kind of iterator that are defined l ...

  9. 怎样在ios开发中设置tableview的cell颜色

    //方法一: cell .contentView .backgroundColor = [ UIColor redColor ]; //方法二: UITableViewCell *cell = [ta ...

  10. EasyUI - 后台管理系统 - 登陆模块

    效果: --- --- Html代码: <div id="login"> <p>账户:<input type="text" id= ...