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

1 安装ctags

apt install ctags

2 内核源码目录下添加索引

使用下面命令,添加索引成功后,内核目录下会生成tags 索引文件。

ctags -R

3 vim使用索引阅读源码

跳转到函数变量定义与返回

#跳到函数或者变量定义
Ctrl+]
#返回
Ctrl+o 

光标移动到需要跳转的符号上

键盘敲击“Ctrl+]”,即可跳转到该符号的定义

有时候某个符号有很多索引,使用“Ctrl+]”会跳转错误,这时候可以全局查询指定符号,vim 下使用 ts 命令全局查询指定符号

:ts symbol  或者 :ts

如搜索“i2c_transfer”符号

敲回车,选择相应的索引,这里选择索引 2。有时候该符号比较多 ,键盘输入”q“,即可进入选择

敲回车即可跳到对应函数定义下

4 vim 常用技巧

移动:h(左)、j(下)、k(上)、l(右)

gg(移动到文本开头)、G(移动到文本末尾)、zz(将本行移动到中间)

dd(删除本行)、x(删除后一个字符)

V(选择字符)

Ctrl+u(往上翻页)、ctrl+f(往下翻页)

:ls(查看缓冲区) :e+文件名(打开文件) :b+缓冲区序号或文件名(跳转到其他缓冲区)

Ctrl+w+s(水平分割) ctrl+w+v(垂直分割)

Ctrl+w+w(切换窗口) :vs+文件名(打开文件并新建一个窗口)

y(复制) p(粘贴)

u (撤销上一步)

vim添加行号

/etc/vim/vimrc文件末尾添加

set number

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1534612.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

python画图|3D参数化图形输出

前面已经学习了基本的3D作图,具体链接如下: 基础教程:python画图|3D图基础教程-CSDN博客 直方图教程:python画图|3D直方图基础教程-CSDN博客 垂线标记教程:python画图|3D垂线标记-CSDN博客 3D surface教程&#xf…

Kamailio-基于Homer与heplify的SIP信令监控-2

接上篇,我们已经顺利地完成了服务的安装,下面就来看看如何配置并启动。 跟着我,你将学会: 下载并安装 踩坑:按照官方步骤来,可是网络条件不允许 获取YUM源下载RPM包手动解压安装避坑 配置并启动&#xf…

如何计算光伏在安装过程中的损耗程度?

光伏系统在实际安装和运营过程中,会受到多种因素的影响,导致电能损耗。这些损耗包括线缆损耗、逆变器效率、组件品质、灰尘积累、入射角损失等。 一、光伏系统损耗的分类 光伏系统的损耗大致可以分为以下几类: 1、线缆损耗:光伏…

文件外发怎么保证安全

为了确保文件在外发过程中的安全,金刚钻信息网站的防泄密系统支持以下多种措施来防止数据泄露和未经授权的访问: 1. 文件加密 加密文件:在文件外发前对其进行加密处理,确保只有持有解密密钥或密码的人才能访问文件内容。加密工具…

uview-plus 表单校验 相关字段有数据有值的情况下非空验证失败问题

你们好,我是金金金。 场景 uniapp编写h5及小程序,组件库用的uview-plus,在进行表单校验的过程中,数据回显 数量明明是有值的,还是依旧提示填写数量(重新再次手动输入才能校验通过,明显是存在问题…

电子电路产业园废水处理与资源回收的创新实践

随着电子产品的普及和技术革新步伐的加快,电子电路制造业已成为推动现代科技发展的关键力量之一。然而,随之而来的环保问题不容忽视。电镀工艺作为电子电路生产中的一个核心环节,其产生的含镍废水处理成为了企业必须面对的重要课题。本文将探…

Oracle发邮件功能:设置的步骤与注意事项?

Oracle发邮件配置教程?如何实现Oracle发邮件功能? Oracle数据库作为企业级应用的核心,提供了内置的发邮件功能,使得数据库管理员和开发人员能够通过数据库直接发送邮件。AokSend将详细介绍如何设置Oracle发邮件功能。 Oracle发邮…

悟空crm客户管理系统二次开发 单独新增表格字段

1,仪表盘(数据来源修改) 注意点:有层级关系,管理员账号可以看到全部数据,主管只能看到下属数据。 2、在客户管理菜单里面 增加一个时间筛选、额度汇总 /*** 获取客户列表** param $type* param $content*…

vagrant+virtualbox+ubuntu22.04无法上网问题

一、过程 vagrantfile配置私有网络 config.vm.network "private_network", ip: "192.168.56.10"启动虚拟机,可以ping通百度的实际IP,ping不通域名修改/etc/netplan/50-vagrant.yaml,配置DNS network:renderer: Networ…

2024年9月一区SCI-神经种群动态优化算法NPDOA-附Matlab免费代码

引言 本期介绍了一种受脑神经科学启发的元启发式算法,称为神经种群动态优化算法Neural population dynamics optimization algorithm(NPDOA)的元启发式算法。该成果于2024年9月最新发表在中科院1区 Top SCI期刊 Knowledge-Based Systems。 原文作者将NPDOA与其他9种…

智慧体育场馆:科技引领未来运动体验

在当今数字化时代,​智慧体育场馆​的建设不仅提升了观众、运动员和管理者的体验质量,也为体育产业注入了新的活力和创新。通过整合先进科技和智能系统,体育场馆能够实现更高效的运营管理、提升赛事体验以及优化资源利用。以下是古河云科技构…

JavaSE - 易错题集 - 006

1. 哪个正确 A abstract类只能用来派生子类,不能用来创建abstract类的对象。 B final类不但可以用来派生子类,也可以用来创建final类的对象。 C abstract不能与final同时修饰一个类。 D abstract类定义中可以没有abstract方法。 正确答案&#xff1…

GMB外链是什么?

GMB外链其实就是百万外链,它是一种通过大量反向链接来提升网站页面权重的方法。如果你刚建了一个新网站,想在短时间内被收录并获得排名,GMB外链能帮你做到这点。它不像传统SEO那样需要等待好几个月的效果,GMB外链能在24小时内帮你…

TVS瞬态抑制二极管,单向和双向有什么区别?

1、TVS瞬态抑制二极管的分类 根据方向来分,有单向和双向之分; 根据外形来看,有直插和贴片之分; 根据工作电压来分,有高压和低压之分; 根据功率大小来分,有小功率和大功率之分; …

论文解读《NewsBench:一个评估中文新闻大型语言模型编辑能力的系统评估框架》

引言:感觉这篇文章,对 LLMs 的新闻编辑能力做了一个详细的实验和分析,而且还贡献了一个宝贵的中文新闻数据集,蛮不错的,后面或许可以用起来,就拜读了一下。 这篇博客的题目说是解读,其实大部分…

在Ubuntu中编译含有JSON的文件出现报错

在ubuntu中进行JSON相关学习的时候,我发现了一些小问题,决定与大家进行分享,减少踩坑时候出现不必要的时间耗费 截取部分含有JSON部分的代码进行展示 char *str "{ \"title\":\"JSON Example\", \"author\&…

Debian11源码安装mysql5.7

#!/bin/bash# 安装依赖 apt-get update && apt-get install -y wget make gcc g cmake bison libncurses5-dev libssl-dev libtool pkg-config> /dev/null # 安装包所在目录 packages"/usr/local/src" # 数据目录 datadir"/hskj/mysql" # pid文…

解决Docker镜像不可下载

使用国内可信的镜像中心 可信国内镜像网址:https://hub.atomgit.com/ 点击镜像仓库 搜索想要的镜像 按如图所示,即可查看对应的版本 点击复制,即可下载使用 缺点: 可用的镜像相比于docker官方量少 并且,获取的镜像名字…

文献速递 | E3泛素连接酶PELI2介导STING信号激活的阈值设定

自从2013年cGAS被发现,cGAS-STING通路在检测和应对病毒和细菌感染等外部威胁和癌症发展等内部威胁中的作用已经越来越多的被提及。cGAS-STING通路几乎无处不在,它可以监测细胞质中的dsDNA,而dsDNA是病原体感染、细胞损伤和癌症等多种威胁的危…

OM6626国产低功耗蓝牙对比NRF52832/NRF52810

OM6626 是一款超低功耗的蓝牙soc 主要特性: 支持BLE5.3支持SIG Mesh支持2.4G长包主频64Mhz,80KB RAM主要应用在esl电子价签,IoT模组、CGM、高报告率HID设备 PUM特点 1.71~3.6v供电电压1秒间隔广播平均电流:9uA;1秒间…