linux系统下用vim+ctags+cscope查看源码

使用vim+cscope阅读内核源码详解 方法一:命令方法二:光标停在单词submit_bio上,按ctrl+\ g,在当前窗口跳转到函数定义方法三:光标停在单词submit_bio上,按,上下分割窗口并跳转到函数定义方法四:光标停在单词submit_bio上,按,左右分割窗口并跳转到函数定义内核的syscall定义是这样的要想找到它,就要使用正则表达式匹配命令就可以找到它这些工具和技巧算得上老手艺了,我是个怀旧的人,总是对这些老技术有莫名的喜欢。 阅读详情

ctags 用于把关键字生成一个索引表,在vim里可直接使用"ta 关键字"在索引表里查找并定位.
cscope 也是生成索引表,在vim里使用"cs xx xx xx "来查找

如查看ffmpeg-3.0的源码:
	
	1). 在终端进入源码目录,输入"ctags -R *" // 会在当前目录下生成索引表文件, 文件名为tags
       如果源码目录下有多少语言的源文件,可通过指定语言与扩展名的方法生成索引,如:
       ctags --langmap=c:.c.h --languages=c -R -f .tags
	
	2). 在终端使用,需确保终端当前工作目录是在索引表文件tags的所在目录(注意需确保/etc/vimrc里没有"set tags=xx"的语句).
	    如查看"av_register_all"函数, 则打开vim后,输入":ta av_register_all", 按回键后可以直接定位到函数体的所在源文件。
	    当查看的内容出现多个选择时,输入前面的序号即可跳转到相应的源码文件。

	    在vim里,按"ctrl+g"可查看当前的源文件名, "ctrl+o"可跳回上次浏览的位置.
		    当标移动到要查看的关键字后,按"ctrl+]"直接查看.

	// vim+ctags 只适合查看类型的定义,函数体等。并不适合如需查看一个函数在哪些地方被调用了,又被哪些函数调用,所以还需要用cscope命令

	3). 使用cscope命令生成索引表
	    终端命令:  
		   find ./ -name "*.h" -o -name "*.c"   >  cscope.files   //在当前目录下查找*.h, *.c文件,并把相应的文件及路径输出到cscope.file文件里
		   cscope -bkq   // 让cscope根据 cscope.file文件里的文件列表生成索引表(cscope.in.out  cscope.out     cscope.po.out
)

	
	4). cscope在vim里的用法
	    打开vim后, 输入":cs"确认后会弹出帮助说明:
		cscope commands:
		add  : Add a new database             (Usage: add file|dir [pre-path] [flags])
		find : Query for a pattern            (Usage: find c|d|e|f|g|i|s|t name)
		       c: Find functions calling this function
		       d: Find functions called by this function
		       e: Find this egrep pattern
		       f: Find this file
		       g: Find this definition
		       i: Find files #including this file
		       s: Find this C symbol
		       t: Find this text string
		help : Show this message              (Usage: help)
		kill : Kill a connection              (Usage: kill #)
		reset: Reinit all connections         (Usage: reset)
		show : Show connections               (Usage: show)
		Press ENTER or type command to continue
	
	常用cs命令:
	   "cs add  ./"是用于增加当前目录下的索引表

	   "cs  find  c 函数名" 查看哪些函数调用指定的函数名

	   "cs  find  d 函数名" 查看指定的函数名调用了哪些函数

	   "cs find g 类型/函数" 查看类型的定义或函数体
	
	   "cs find t 字符串"   按字符串内容来查找相应的关键字

//////////////////////////////////////////////////////////
在一些源码工程里,如uboot, linux kernel里:
	直接执行下面命令即可产生相应的索引表:
		   make tags
		   make cscope

查看linux内核源码还可以通过"man 9 内核里的函数"来查看说明.
需要在linux内核源码目录下:

make mandocs ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
make installmandocs ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-


增加vim补全功能, 如内核路径在/disk3/h3_kernel目录下:
vim /etc/vimrc //修改vim配置文件, 在文件尾增加以下内容

set path+=/disk3/h3_kernel/include/
set path+=/disk3/h3_kernel/arch/arm/include/
set path+=/disk3/h3_kernel/arch/arm/mach-sunxi/include/

保存退出后,在vim写代码时,只要写出前几个字母后按"ctrl + p"即可显示出补全内容

vim+cscope+ctags打造属于自己的IDE 所谓工欲善其事,必先利其器。作为专业码农,特别是长期在Unix系统上展开工作(查看源代码、coding)的码农,没有一个极致的IDE环境,工作效率会很受影响的。当然啥时候Unix系统如果有Visual Studio这样牛X的IDE,相信很多人会很开心。但生活是残酷的,我们总得自己丰衣足食,下面介绍一下,我在ubuntu12.04上使用vim+cscope+ctags搭建的IDE。 阅读详情

相关推荐

vim+ctags+cscope+Taglist+NERDTree打造成SourceInsight

Vim神器,将Vim改造为强大的IDE

houxiaoni01的博客 3600

Linux 下阅读源码工具(Vim + ctags+Cscope)

0. 写在前面的废话 开发环境迁移到了Ubuntu下,所有windows下好用的工具都要找个替代品。 windows下一直用 souce Insight 来阅读源码,需要在Ubuntu下找个替代品。 上网看了看,貌似Vim + Ctags + Cscope不错,安装来试试 o(∩∩)o   1. 安装 在我用的ubuntu中,这三个软件都不是自带的,需要手动安装

niepangu的专栏 3337

Vim+ctags+cscope+Nerdtree+Taglist入门

介于linux下并没有什么像Source Insight这样优秀的内核源码阅读工具,只有一些模仿的都不伦不类,所以我用打造vim为一个合格的源码阅读器,看着贼爽。 可能一下子看起来那么多东西可能怕怕的,但是可以一个一个来。Vim+ctags可以先用着,能够实现自动跳转。然后再一点一点加入其他的来完善。 下面就是我的vim的效果图(实际上不难,别被吓到),左边是Taglist 右边是Nerdtr

cnh294141800的专栏 2174

vim+ctags用法

From:http://emb-cn.com/webelec/article/15/79/Article_1765.htm[/home/brimmer/src]$ ctags -R"-R"表示递归创建,也就包括源代码根目录下的所有子目录下的源程序。"tags"文件中包括这些对象的列表:l        用#define定义的宏l        枚举型变量的值l        函

fatsandwich的专栏 1555

搭建Linux内核阅读环境(ctags + cscope + vim(插件:Source Explorer + NERD Tree + Tag List))

根据《ARM Linux内核源码剖析》的方法,搭建Linux内核阅读环境。

南七行者的博客 1870

WinServer 2012 R2 搭建 AD 单域多站点 及 DNS各站点的子网掩码排序调整

WinServer 2012 R2 搭建 AD 单域多站点 及 DNS各站点的子网掩码排序调整

一直被模仿,从未被超越 5533

[linux基础知识]教你使用vim和ctags阅读linux内核源码

有时候某个符号有很多索引,使用“Ctrl+]”会跳转错误,这时候可以全局查询指定符号,vim 下使用 ts 命令全局查询指定符号。:ls(查看缓冲区) :e+文件名(打开文件) :b+缓冲区序号或文件名(跳转到其他缓冲区)gg(移动到文本开头)、G(移动到文本末尾)、zz(将本行移动到中间)Ctrl+w+w(切换窗口) :vs+文件名(打开文件并新建一个窗口)Ctrl+w+s(水平分割) ctrl+w+v(垂直分割)移动:h(左)、j(下)、k(上)、l(右)dd(删除本行)、x(删除后一个字符)

weixin_49406449的博客 685

手把手教你用fusb302实现PD快充:从驱动移植到实战调试(附源码)

本文详细解析了基于FUSB302芯片实现USB PD快充的完整开发流程。内容涵盖芯片选型、硬件设计要点、Linux驱动移植与内核集成,并重点剖析了PD协议交互中的关键调试技巧,如“死亡15ms”时序问题与中断模式选择。文章通过实战经验,帮助嵌入式开发者高效完成从驱动移植到系统集成的全链路开发,并附有源码参考。

sky77的博客 375

【Android 12 AOSP学习】在Linux系统使用vim+cscope+ctags阅读源码

将写好的csc.sh脚本文件放入源码根目录,终端进入源码根目录,在源码根目录执行脚本csc.sh,在终端输入以下命令。如果命令无法运行,可能需要修改csc.sh文件为可执行文件,在终端输入。首先安装Vim、cscope、ctags,在终端输入以下命令。等待脚本运行成功,脚本运行成功后在终端输入以下命令。

etrospect的博客 789

get_seed协议

【代码】get_seed协议。

a545958498的博客 911

电磁兼容(EMC)整改案例(七):EFT测试失败都是IC悬空引脚惹的祸

无论任何时候,为了避免这些问题,通常建议对悬空的IO口进行适当的配置,比如设置为强推挽输出低电平、输入带上拉或下拉电阻等,以减少外部电路对IO管脚状态的影响,并提高系统的稳定性和可靠性.

linkking27的博客 1032

linux下 vim+ctags+cscope阅读源码

linux下 vim+ctags+cscope阅读源码一. vim二. ctags安装使用准备使用方法一方法二命令三. cscope安装使用准备使用方法一方法二命令四. taglist建议 一. vim vim作为linux下的必备文本编辑工具,必须掌握,网上教程很多,就不列举了。这里有一份简明vim练级攻略,不熟悉的请自行学习。 二. ctags ctags工具是用来遍历源代码文件生成tags文...

WarEric的博客 3087

3、固定翼无人机模型解析

本文详细解析了固定翼无人机的动力学模型与纵向模型,涵盖位置、速度、角度及角速度的变化率方程,并介绍了力和力矩的计算方法以及气动系数的表达式。通过关键参数分析,探讨了速度、迎角和倾斜角对飞行性能的影响。文章还展示了模型在编队飞行和任务规划中的应用,并提出了参数优化与先进控制策略等优化思路,为无人机飞行控制系统设计提供了理论基础。

gaochao的博客 240

vim+cscope+ctags代码阅读工具使用说明

摘要:本文介绍了在远程服务器上使用Vim+cscope+ctags高效阅读Linux内核源码的配置方法。首先需要安装vim、cscope和universal-ctags工具,并生成内核源码索引文件。详细讲解了.vimrc配置,包括代码导航快捷键(F5-F8)、窗口管理和代码折叠等设置。文章对比了cscope和ctags的功能差异,cscope擅长函数调用关系查找,而ctags更适合快速跳转定义。还提供了进阶优化建议,如使用cscope增量更新、安装cscope_maps.vim插件以及结合LSP实现智能跳转

gkxg001的博客 1171

计算机毕设:线性回归 Xgboost LSTM 预测黄金价格实战 完整代码数据视频讲解 可直接运行

线性回归 Xgboost LSTM 预测黄金价格实战 完整代码数据视频讲解 可直接运行

1760

2026.2.3:OpenClaw国内安装教程,国内网络使用,服务器部署,对接飞书

本文介绍了如何创建飞书应用并接入OpenClaw机器人的完整流程。主要内容包括:1)在飞书开放平台创建企业自建应用,添加机器人能力并开通相关权限;2)在Windows11系统上安装OpenClaw,完成配置文件的修改(需将bind改为"lan");3)配置MiniMax国内接口地址,重启gateway服务。整个过程涵盖了应用创建、权限设置、软件安装、服务配置等关键步骤,为开发者提供了详细的飞书机器人接入指南。

拥抱具身智能,昇腾Ascend C 3991

Linux 内核阅读工具vim+ctags+cscope+taglist

今天,我们了

GrubLinux的专栏 4698

2026.1.9:最新VSCode集成claude插件完美解决方案,跳过登录界面,使用国内Kimi K2进行计费

本文介绍了如何安装配置Claude插件并连接Kimi K2 API的详细步骤:1)搜索安装Claude插件;2)进入设置关闭登录提示;3)在settings.json中添加API配置,包括ANTHROPIC_AUTH_TOKEN(需替换为Kimi API Key)和ANTHROPIC_BASE_URL;4)通过Kimi官网获取API Key。完成配置后即可正常使用该插件。文中配有完整的操作截图指引。

拥抱具身智能,昇腾Ascend C 8719

使用Vim+Ctags+Cscope阅读源代码

--孔建军(Kongove.CN)2008.11.15代码阅读工具简介对于学习Linux内核的人来说,源代码的阅读尤为重要。 因为所有设计思想、内部机制都是以代码的形式实现,所有的资料也都是为了更好的诠释代码。那么一个好的阅读工具,能够提高阅读的效率和效果。常见的代码阅读工具有,Source Navigator、Source Insight、lxr、Cscope

1万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

使用 vim + ctags + cscope + taglist 阅读源码

http://my.oschina.net/u/554995/blog/59927 最近,准备跟学长一起往 linux kernel 的门里瞧瞧里面的世界,虽然我们知道门就在那,但我们还得找到合适的角度才会看得更舒服,对吧^_^ 。        阅读源码的工具有很多,而且如今的集成开发环境(IDE)也很强大,但对于经常使用vim编辑器的程序员来说,对vim的强大绝对是“不抛弃,不放弃”的

wonder 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

使用vim+ctags+cscope阅读内核源码

有网络的时候,使用LXR(The Linux Cross Referencer)在线阅读源码固然是一件很爽的事情。在无网络的情况下,只通过vim进入内核源码那样查找就显得有些勉强。接下来,本文将介绍一种快速定位源码的工具:ctags和cscope。通过vim编辑器,再配合使用上述

Cynric 的博客 1118

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Vim神器 | vim+ctags+cscope+Taglist+Nerdtree打造成sourceinsight

听说vi很强大?是的,最近笔者需要在Linux下编写一些C代码和查看一些C源码,但是默认的vi并不支持函数之间的跳转、查看函数的定义等等,所以笔者就将vi打造成了一个ide(可以勉强称得上吧)。首先我们来看一下搭建完成之后的样子: [外链图片转存失败(img-3mOLMI8K-1566136798119)(https://img.dawnguo.cn/Linux/vim_to_si_2.jpg)]...

多选参数-程序锅 1616

Linux下内核源码阅读方法 (vim+ctags+taglist+cscope)

因为长期受 Windows 下 source insight 查看内核源码的困扰(Windows下文件大小写问题、无法完全 synchronize symbol、以及全局查询较慢),因此另寻出处,找到本文的解决方案。本文的 OS 环境为 SLES15。 一、安装&环境准备 安装 vim(通过 vim 查看代码文件) - Bash 代码 1 zypperinvim ...

勤学如春起之苗,不见其增,日有所长! 辍学如磨刀之石,不见其损,日有所亏! 745

vim + cscope + ctags + taglist

Source Insight是Windows下最方便浏览代码的工具。但是Source Insight是没有Linux版本的。为了方便在Linux下浏览代码并进行学习,可以利用Vim配合Cscope来打造Linux下的Source Insight。

L_Nan的专栏 1376
上一篇: linux下开发必备的工具
下一篇: 02 ffmpeg获取桌面图像的编程
jklinux
博客等级 码龄10年 1060粉丝 276原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值