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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值