背景
0.最近为了学习linux内核的数据结构,需要阅读linux内核,代码量比较大些,想起来几年前阅读android源码时的工具用来还算比较顺手,就想配置下接着继续来用。
1.软件的安装,略过linux和vim的安装,如果这些东西你都没有安装,或许这个博客你根本不需要看的,
具体就是linux,vim+ctags,配置过程如下:
直接安装ctags:pacman -S ctags
安装taglist:https://sourceforge.net/projects/vim-taglist/files/vim-taglist/4.6/taglist_46.zip/download 下载压缩包,将压缩包解压到/.vim目录,解压后会在/.vim目录中生成几个子目录,如plugin和doc,进入~/.vim/doc目录,在Vim下运行"helptags ."命令安装taglist的文档,这样后期就可以通过在Vim中运行“help taglist.txt”查看taglist帮助了。
2.配置vim配置文件,添加以下两行:
set tags+=./tags //设置目录位当前目录,也可以像下面的行那样指定目录
"set tags+=~/linux-5.10.59/ //这样不够灵活
set autochdir //自动设置目录
3.进入项目目录,例如:~/linux-5.10.59, cd ~/linux-5.10.59
生成数据库文件tags,命令:ctags -R ,如果文件比较多,tags文件也可能非常大,我这里是linux内核源码1.0G,tags文件680多兆,生成比较慢,需要耐心等待
4.查看特定文件内的符号、函数等,直接用vim打开文件,底行输入::TlistToggle,打开taglist窗口,
如途中所示,列出了macro和function主要是当前文件下的一切,如果在此查看WRITE_ONCE,无法查到,结果:E426: 找不到 tag: WRITE_ONCE
5.使用vim -t tag,直接打开包含tag的文件,并定位到所在的行,上一行的解决办法:vim -t WRITE_ONCE
很明显,不但打开了文件,而且自动定位到WRITE_ONCE的那一行,此处位59行,妈妈再也不用担心我不能查到函数或变量等了。
vim中taglist的配置方法:
启动vim,用 “:helptags .”来配置好帮助文件
重启vim,用“:TlistToggle”来打开和关闭taglist窗口。
可以用“:help taglist”来获得更多帮助信
若要默认打开taglist,_vimrc中加入
let Tlist_Auto_Open=1
set tags=tags; “这里的;不能省略
set autochdir
API定义了源码接口,而ABI定义了两个软件模块在特定体系结构上的二进制接口。它定义了应用内部如何交互,应用如何与内核交互,以及如何和库交互。API保证了源码兼容,而ABI保证了“二进制兼容(binary compatibility)”,确保对于同一个ABI,目标代码可以在任何系统上正常工作,而不需要重新编译。
这篇文章也不错,建议看看:https://www.cnblogs.com/tsingke/p/4214862.html