创作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. 计算机毕业设计springboot基于疫情背景下的新型点餐送餐系统bpe1s源码+系统+程序+lw文档+部署

    计算机毕业设计springboot基于疫情背景下的新型点餐送餐系统bpe1s源码+系统+程序+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开发软件:idea ecli ...

  2. java计算机毕业设计特色农产品供需销售系统源码+数据库+系统+lw文档+mybatis+运行部署

    java计算机毕业设计特色农产品供需销售系统源码+数据库+系统+lw文档+mybatis+运行部署 java计算机毕业设计特色农产品供需销售系统源码+数据库+系统+lw文档+mybatis+运行部署 ...

  3. 基于Java毕业设计养老院信息管理源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计养老院信息管理源码+系统+mysql+lw文档+部署软件 基于Java毕业设计养老院信息管理源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S架构 开发语 ...

  4. 基于JAVA幼儿园综合管理系统计算机毕业设计源码+系统+数据库+lw文档+部署

    基于JAVA幼儿园综合管理系统计算机毕业设计源码+系统+数据库+lw文档+部署 基于JAVA幼儿园综合管理系统计算机毕业设计源码+系统+数据库+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开 ...

  5. 基于javaweb框架的springboot mybatis宠物商城源码含论文设计文档

    在互联网高速发展.信息技术步入人类生活的情况下,电子贸易也得到了空前发展.网购几乎成为了人人都会进行的活动.近几年来,养宠物更是成为人们生活中重要的娱乐内容之一, 人们越来越多的讲感情也寄托给了宠物, ...

  6. 计算机毕业设计Java-ssm爱馨敬老院网站源码+系统+数据库+lw文档

    计算机毕业设计Java-ssm爱馨敬老院网站源码+系统+数据库+lw文档 计算机毕业设计Java-ssm爱馨敬老院网站源码+系统+数据库+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言:Ja ...

  7. java计算机毕业设计消防安全应急培训管理平台源码+系统+数据库+lw文档+mybatis+运行部署

    java计算机毕业设计消防安全应急培训管理平台源码+系统+数据库+lw文档+mybatis+运行部署 java计算机毕业设计消防安全应急培训管理平台源码+系统+数据库+lw文档+mybatis+运行部 ...

  8. Java计算机毕业设计电子竞技赛事管理系统源码+系统+数据库+lw文档

    Java计算机毕业设计电子竞技赛事管理系统源码+系统+数据库+lw文档 Java计算机毕业设计电子竞技赛事管理系统源码+系统+数据库+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言:Java ...

  9. java计算机毕业设计大学生学籍管理系统源码+数据库+系统+lw文档+部署

    java计算机毕业设计大学生学籍管理系统源码+数据库+系统+lw文档+部署 java计算机毕业设计大学生学籍管理系统源码+数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开发语言: ...

  10. 基于JAVA志愿者信息管理系统计算机毕业设计源码+系统+数据库+lw文档+部署

    基于JAVA志愿者信息管理系统计算机毕业设计源码+系统+数据库+lw文档+部署 基于JAVA志愿者信息管理系统计算机毕业设计源码+系统+数据库+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开 ...

最新文章

  1. JS实现HashMap
  2. hdu 1258 确定比赛名次
  3. 集合(normal)
  4. IOS学习笔记十九NSArray和NSMutableArray
  5. YbtOJ#732-斐波那契【特征方程,LCT】
  6. JSR 365更新:深入CDI 2.0
  7. 正则表达式的一些符号基础和实例解析
  8. Docker 简易搭建 ElasticSearch 集群教程
  9. UI设计素材干货模板|手机app夜间模式相关素材
  10. 基于51最小系统的超声波测距
  11. 织梦系统的安装与详细信息
  12. 2114. 句子中的最多单词数
  13. 原始图片中的ROI如何映射到到feature map?(转)
  14. rtrim()正确的理解啊
  15. word护眼模式使用方法
  16. 深度学习入门,Keras Conv2D类参数详解
  17. 云分众享,阿里云盘资源搜索工具
  18. 云计算360度:微软专家纵论产业变革
  19. 智慧园区一体化信息管理平台设计方案
  20. WdatePicker常用配置属性

热门文章

  1. pcb板可挖孔吗_PCB板上的过孔的种类及打孔注意事项
  2. URDGN:Ultra-resolve Face Images by Discriminative Generative Networks
  3. fastText原理和文本分类实战,看这一篇就够了
  4. 【0x50 动态规划】Mobile Service【线性DP】
  5. 【POJ 2449】第K短路【A*算法】
  6. java+log日志实例_java.util.log,使用3个不同的记录器实例/日志文件,获得.1.2等
  7. 对一个“老”架构的重新思考
  8. C语言 第六章 多重循环练习
  9. HTML入门标签汇总
  10. KnockoutJS 3.X API 第七章 其他技术(3) 延迟更新