vim中函数跳转的功能实现

news/2025/2/12 5:00:10/

左手编程,右手年华。大家好,我是一点,关注我,带你走入编程的世界。

公众号:一点sir,关注领取编程资料

介绍

函数跳转是要给IDE中非常重要也非常常用的功能,而原生的 Vim 并不提供这个功能,这个确定有点让人遗憾,按理说这么常用的功能应该是要提供的。但是没有关系,有插件可以实现这样的功能更,借助像 ctags 这样的插件来实现。

安装 ctags

在 CentOS 或者 OpenEuler 系统中,可以通过以下命令安装:

sudo yum install ctags

在 Ubuntu 系统下,可以通过以下命令安装:

sudo apt-get install ctags

当然包名可能有所区别,这个要看各个厂商的命名规则。安装完成后,可以在源代码的目录下执行以下命令来生成 tags 文件:

ctags -R .

这个 tags 文件是一个包含所有函数和变量索引列表的文件,它使得在 Vim 中进行函数跳转成为可能。

使用跳转功能

在 Vim 中打开任意文件,并将光标移动到你想要跳转的变量或函数上。使用以下快捷键可以实现跳转:

  • Ctrl + ]:快速跳转到函数或变量的定义处。
  • Ctrl + t:跳转回之前的位置。

这种跳转不仅适用于单个文件内部,也适用于跨文件的跳转。无论你按多少次 Ctrl + ],都可以按相同次数的 Ctrl + t 回到原来的位置。

总结

以上我的废话有点多,总结起来就是以下几个命令:

sudo yum install ctags
ctags -R .
Ctrl + ]
Ctrl + t

你记住了吗?

说明

  • 生成 tags 文件ctags 命令非常强大,它不仅可以递归地为当前目录下的文件生成 tags 文件,还可以为特定类型的文件或者通过正则表达式匹配特定的符号生成 tags 文件。例如,如果我们只想为 .c.h 文件生成 tags 文件,可以使用命令 ctags -R *.c *.h
  • 更新 tags 文件:随着项目的进行,可能会有新的函数和变量被添加。为了保持 tags 文件的更新,可以定期运行 ctags 命令。
  • 配置 Vim:为了提高效率,可以在 .vimrc 文件中添加一些配置,比如设置 tags 文件的路径,或者定义快捷键等。

http://www.ppmy.cn/news/1421003.html

相关文章

【C语言】带你完全理解指针(五)练习

复习一下对数组名的理解 数组名的理解 数组名是数组首元素的地址 但是有2个例外: 1. sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小,单位是字节 2. &数组名,这里的数组名表示整个数组&#xff…

(delphi11最新学习资料) Object Pascal 学习笔记---第8章第4节(继承和类型兼容性)

8.4.2 延迟绑定和多态性 ​ Object Pascal 函数和过程通常基于静态绑定,也称为早期绑定。这意味着方法调用是在编译或链接时解决的。面向对象编程语言允许延迟绑定或动态绑定,即根据用于调用的实例类型在运行时确定要调用的方法。 ​ 这种技术的优势被…

JVM结构化体系

目录 目录 1.JVM 简介 1.1. 如何理解 JVM 呢? 1.2. 市场主流 JVM 分析? 1.3. 为什么要学习 JVM? 1.4. 字节码底层是如何执行呢? 如何理解 JIT 呢? 为什么 JVM 中解释执行与编译执行的并存(混合模式&…

Unity构建详解(8)——SBP的Bundle生成

【WriteSerializedFiles】 这里将实际的写操作执行单独拎了出来共用,放在了IRunCachedCallbacks,但数据的传入和处理还是在Task中执行。 这一步会生成实际的SerializedFile文件,文件名就是之前的InternalName,但这还不是最终的B…

设计模式(019)行为型之状态模式

状态模式是一种行为型设计模式,它允许对象在内部状态发生变化时改变它的行为,使得对象在不同状态下有不同的行为表现,而且可以方便地添加新的状态而不必修改已有的代码。 1、场景设计 实现场景:对状态A和状态B做出不同的处理。 …

设计模式(23):访问者模式

定义 表示一个作用于某对象结构中的各元素的操作,它使我们可以在不改变元素的类的前提下定义作用与这些元素的新操作。 模式动机 对于存储在一个集合中的对象,他们可能具有不同的类型(即使有一个公共的接口),对于该集合中的对象&#xff0…

边缘计算网关主要有哪些功能?-天拓四方

随着物联网(IoT)的快速发展和普及,边缘计算网关已经成为了数据处理和传输的重要枢纽。作为一种集成数据采集、协议转换、数据处理、数据聚合和远程控制等多种功能的设备,边缘计算网关在降低网络延迟、提高数据处理效率以及减轻云数…