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

创作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的文件列表制作更出色的代码提示。

时间: 2024-10-08 22:13:31

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

【原创】.NET平台机器学习组件-Infer.NET连载(二)简单贝叶斯分类器的例子—【附源码和自制帮助文档】

Infer.NET机器学习翻译系列文章将进行连载,感兴趣的朋友请收藏或关注 你还可以参考本博客其他.NET开源项目的相关文章: [原创]彩票预测算法:离散型马尔可夫链模型          Newlife XCode组件资源目录汇总[2013年版] [原创]开源.NET下的XML数据库介绍及入门          [原创].NET开源压缩组件介绍与入门 [开源].NET开源表达式计算组件介绍与使用          [原创]开源Word读写组件DocX介绍与入门 [原创]Matlab.NET混编

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

目前源码和文档一般都是分开的,我在想为什么 源码不就是最好的文档么? 但是一般源码都是文本text的,格式化需要人为统一规范,所以源码中的文档在现实中不是那么的易于实践. 而且 源码 不能包括图片.附件.示例代码等资源,这个又是一个难点. 后来我突发奇想,为什么不能把xml作为一种合二为一的文档呢? xml可被IDE识别,解析其中 包括 <code lang=cpp> 的标签中的文本为 代码.编译也使用这部分. 其他的标签 全部都是文档.而且可以在code 代码中 再分割,添加文档部分. 而文

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

今天学习Netty的过程中,从官网下载的netty里面的内容如下: 其中jar文件夹里面的内容如下: 可以看到每一个具体的jar包就对应有一个sources.jar包,然后所有的帮助文档在javaDoc文件下面的jar包里面 那怎么查看一个类的源码和帮助文档呢??? 当我们在没有进行相应的配置前,当我们双击一个类时,会报类找不到 这时我们可以点击"Attach Source-",配置sources所在的路径 然后就可以了. 不过一般呢,我们可以这样配置: ①右键目标jar包,选择Pro

疫情在家,Nginx+Redis+Sping源码+SpringBoot技术实战文档你真的不了解一下?

Nginx实战Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行.其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度.京东.新浪.网易.腾讯.淘宝等. Nginx 是一个很强大的高性能Web和反向代理服务,它具有很多非常优越的特性: 在连接高并发的情况下,Nginx是Apache服务不错的替代品:Nginx在美国是做虚拟主机生意的老板们经

linux内核源码级调试

一 linux内核源码阅读工具 windows下当然首选source insight, 但是linux下就没有source insight这么优秀的工具了,但是也有不少的替代品,但觉绝对部分人会选择vim+ctags+cscope的组合,还有部分人或选择wine中的source insight或选择navigatror,当然对于代码阅读来说vim+ctags+cscope的组合还是比较好的一个选择方案,但是,当我使用了eclipse之后,个人感觉用eclipse作为linux环境下源码阅读工具确

MapReduce job在JobTracker初始化源码级分析

mapreduce job提交流程源码级分析(三)中已经说明用户最终调用JobTracker.submitJob方法来向JobTracker提交作业.而这个方法的核心提交方法是JobTracker.addJob(JobID jobId, JobInProgress job)方法,这个addJob方法会把Job提交到调度器(默认是JobQueueTaskScheduler)的监听器JobQueueJobInProgressListener和EagerTaskInitializationListen

监听器初始化Job、JobTracker相应TaskTracker心跳、调度器分配task源码级分析

JobTracker和TaskTracker分别启动之后(JobTracker启动流程源码级分析,TaskTracker启动过程源码级分析),taskTracker会通过心跳与JobTracker通信,并获取分配它的任务.用户将作业提交到JobTracker之后,放入相应的数据结构中,静等被分配.mapreduce job提交流程源码级分析(三)这篇文章已经分析了用户提交作业的最后步骤,主要是构造作业对应的JobInProgress并加入jobs,告知所有的JobInProgressListen

TableInputFormat分片及分片数据读取源码级分析

我们在MapReduce中TextInputFormat分片和读取分片数据源码级分析 这篇中以TextInputFormat为例讲解了InputFormat的分片过程以及RecordReader读取分片数据的过程.接下来咱们分析TableInputFormat的分片信息和数据读取过程. TableInputFormat这是专门处理基于HBase的MapReduce的输入数据的格式类.我们可以看看继承结构:(1)public class TableInputFormat extends Table

从源码Build vim

How to build vim 1. Build步骤 git clone --depth 1 https://github.com/vim/vim.git # download the source code cd vim/src make distclean # clean workspace if you build vim before ./configure --enable-pythoninterp --enable-rubyinterp --enable-python3interp