[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.rhkb.cn/news/423612.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue + Element UI table动态合并单元格

一、功能需求 1、根据名称相同的合并工作阶段和主要任务合并这两列,但主要任务内容一样,但要考虑主要任务一样,但工作阶段不一样的情况。(枞向合并) 2、落实情况里的定量内容和定性内容值一样则合并。(横向…

设置使用阿里云服务器DNS

由于云服务器是从腾讯云迁移到阿里云,然后使用ssl验证时一直无法使用dns验证,也无法创建三级域名,原来需要把阿里云服务器改成阿里云的dns使用 如果使用其他服务器DNS会下面会显示当前DNS服务器,

Linux:git

hello,各位小伙伴,本篇文章跟大家一起学习《Linux:git》,感谢大家对我上一篇的支持,如有什么问题,还请多多指教 ! 如果本篇文章对你有帮助,还请各位点点赞!!&…

解决Docker镜像不可下载

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

【Java】方法2_Java的参数传递机制

文章目录 前言一、Java的参数传递机制都是值传递 1.基本类型的参数传递2.引用类型的参数传递总结 前言 学习Java的参数传递机制,基本类型的参数传递,引用类型的参数传递。 一、Java的参数传递机制都是值传递 值传递:指传输实参给方法的形参…

『功能项目』单例模式框架【37】

我们打开上一篇36C#拓展 - 优化冗余脚本的项目, 本章要做的事情是编写单例模式基类,让继承其基类的子类在运行时只存在一个,共有两个单例基类框架,分别是不继承MonoBehaviour的单例和继承MonoBehaviour的单例框架 首先编写不继承…

OpengGL教程(三)---使用VAO和VBO方式绘制三角形

本章参考官方教程:learnopengl-cn VertexShader.glsl #version 330 core layout(location 0) in vec3 position; layout(location 1) in vec3 color; uniform mat4 projection; // 投影矩阵 out vec4 ourColor; void main() {gl_Position projection * vec4(p…

Probabilistic Embeddings for Cross-Modal Retrieval 论文阅读

Probabilistic Embeddings for Cross-Modal Retrieval 论文阅读 Abstract1. Introduction2. Related work3. Method3.1. Building blocks for PCME3.1.1 Joint visual-textual embeddings3.1.2 Probabilistic embeddings for a single modality 3.2. Probabilistic cross-modal…

Xcode 16 RC (16A242) 发布下载,正式版下周公布

Xcode 16 RC (16A242) - Apple 平台 IDE IDE for iOS/iPadOS/macOS/watchOS/tvOS/visonOS 请访问原文链接:https://sysin.org/blog/apple-xcode-16/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org Xcode 16 的新功…

开源项目低代码表单FormCreate中通过接口加载远程数据选项

在开源项目低代码表单 FormCreate 中,fetch 属性提供了强大的功能,允许从远程 API 加载数据并将其应用到表单组件中。通过灵活的配置,fetch 可以在多种场景下发挥作用,从简单的选项加载到复杂的动态数据处理。 源码地址: Github …

软考中项(第三版) 项目成本管理总结

前言 系统集成项目管理工程师考试(简称软考中项),其中案例分析也是很大一部分考试内容,目前正在学习中,现总结一些可能会考到的知识点供大家参考。 1.1、项目成本管理总线索 1、项目成本失控的原因 (1&a…

每日处理250亿个事件,Canva如何应对数据洪流

在这个数据被称为“新石油”的时代,如何有效地处理海量信息流显得尤为重要。作为广受欢迎的设计平台,Canva不仅因其用户友好的界面而备受关注,还因其高效利用Amazon Kinesis管理每日高达250亿个事件而成为热议焦点。让我们深入探讨Canva是如何…

Java 算法:随机抽题

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 ✨特色专栏&#xff1a…

W外链怎么做微信推广链接?

"W外链"通常指的是一种可以创建短链接或者特殊功能的链接服务,这些链接可以用来在微信等社交平台上进行推广。由于微信对直接链接分享有一定的限制,使用这类服务可以帮助绕过这些限制,从而实现更有效的推广。 以下是使用W外链创建微…

Mysql JSON结果不能IN

开发中遇到这样一种场景,举例说音乐的专辑包含歌曲,假设歌曲放在music表,专辑放在album表,而专辑与歌曲的绑定关系,要么就存一个关联表music_ablum,要么就存一个json字段(music_list)在album表。 存一个关…

【Unity踩坑】使用Input System后UI EventSystem的冲突

在项目中使用Input System,在UI中添加了元素后,再次运行出现下面的错误: InvalidOperationException: You are trying to read Input using the UnityEngine.Input class, but you have switched active Input handling to Input System pac…

关于 vue/cli 脚手架实现项目编译运行的源码解析

1.vue项目运行命令解析 在日常开发中,vue 项目通过vue-cli-service脚手架包将项目运行起来,常用的命令例如: npm run serve npm run build 上述执行命令实际一般对应为项目中 package.json 文件的 scripts属性中编写的脚本命令,在…

亚马逊、沃尔玛、敦煌网、Target塔吉特、Temu环境搭建测评技术!

海外跨境电商各大主要平台正不断力推半托管模式,不断对商家开出众多吸引和扶持政策。全托管是指电商平台全面负责店铺的运营,包括仓储、配送、售后等,而商家主要负责提供货品。半托管模式则基本由商家自主经营,平台只负责仓配物流…

延迟退休,如何影响程序员?

随着人们对长寿的期待增加,延迟退休的趋势逐渐成为了现实。而对于已经面临35岁危机的程序员们来说,延迟退休可能是一个更常见的问题。 可以对照速查一下,延迟法定退休年龄时间表公布,你什么时候能退休? 对照速查&…

单机快速部署开源、免费的分布式任务调度系统——Apache DolphinScheduler

本文主要为大家介绍Apache DolphinScheduler的单机部署方式,方便大家快速体验。 环境准备 需要Java环境,这是一个老生常谈的问题,关于Java环境的安装与配置期望大家都可以熟练掌握。 验证java环境 java -version 下载安装包并解压 使用wg…