【工具】VS Code使用global插件实现代码跳转

  • 🐚作者简介:花神庙码农(专注于Linux、WLAN、TCP/IP、Python等技术方向)
  • 🐳博客主页:花神庙码农 ,地址:https://blog.csdn.net/qxhgd
  • 🌐系列专栏:善假于物
  • 📰如觉得博主文章写的不错或对你有所帮助的话,还望大家三连支持一下呀!!! 👉关注✨、点赞👍、收藏📂、评论。
  • 如需转载请参考转载须知!!

VS Code使用global插件实现代码跳转

    • VS Code上安装GNU Global插件安装
    • 主机上安装GNU Global工具
      • Windows系统
      • Linux环境,
    • VS Code的配置
      • 找到global和gtags的位置
      • 修改setting.json文件
    • 使用global
      • 利用VS Code
      • 利用gtags、global命令
    • 参考资料

VS Code上安装GNU Global插件安装

  • 安装C/C++ GNU Global插件:
    在这里插入图片描述

主机上安装GNU Global工具

Windows系统

  • 可直接从附录网站下载
  • 注:需将global的bin路径添加到系统环境变量Path中。

Linux环境,

  • 可通过源码安装:
# 安装编译环境 
sudo yum groupinstall -y "Development Tools" 
sudo yum install -y ncurses-devel # 
#下载tar包
wget https://ftp.gnu.org/pub/gnu/global/global-6.6.10.tar.gz
# 解压tar包 
tar -zxvf global-6.6.10.tar.gz 
# 编译安装 
cd global-6.6.10 
./configure 
make 
sudo make install
  • 或通过类似下面命令进行安装:
sudo apt install global
sudo yum install global
  • 安装后,可通过下面命令确认安装结果及版本号:
gtags --version

VS Code的配置

找到global和gtags的位置

  • 对于Windows系统,安装的时候可以选择的的;
  • 对于Linux系统,可利用下面命令查看:
which global
which is global

修改setting.json文件

  • 根据上一步的路径,修改配置文件。
  • 对Linux系统:
"gnuGlobal.globalExecutable": "/usr/bin/global",
"gnuGlobal.gtagsExecutable": "/usr/bin/gtags", 
"gnuGlobal.encoding": "Big5",
  • 对Windows系统:
{
    "gnuGlobal.globalExecutable": "C:\\global\\global.exe",
    "gnuGlobal.gtagsExecutable": "C:\\global\\gtags.exe"
    "gnuGlobal.encoding": "Big5",
}

使用global

利用VS Code

  • 先按F1,键入Global: Show GNU Global Version,确认是否正确安装及版本号;
  • 再按F1,输入Global:Rebuild Gtags Database(此时更新的是在vscode打开得所有文件夹),执行完后,会生成三个文件:GTAGS、GRTAGS、GPATH(这三个文件是Global 的tag文件,GTAGS是定义的数据库,GRTAGS是引用的数据库,GPATH是路径的数据库)。
  • tag文件生成成功后,F12查找函数定义可直接跳转。
  • 如果代码频繁更新,则增加gnuGlobal.autoUpdate为true即可。

利用gtags、global命令

# 切到代码目录
cd xxxx

# 使用gnu global建立索引(生成这三个文件:GTAGS、GRTAGS、GPATH)
gtags

# 打开vscode
code .

# 修改代码后,更新索引,则执行
gtags -i   #Update tag files incrementally.
globals -u #Update tag files incrementally.

# 根据命令行查询,执行:
## 函数相关
global -x xx #[查询xx函数,要求完整名称,如函数名]
global -c xx #[查询xx开头的函数名,如无,则列出所有函数名]
global -x xx --color #[查询xx开头的函数,如无,则列出所有函数名]
global -x '^Create.*File' --color#[模糊查找,满足正则表达式Create.*File的函数]

##字面量相关
global -g "connected faild"  src/xxx_func.c  #[在xxx_func.c文件中查找connected faild字符串]

# 命令帮助
global --help
gtags  --help

参考资料

  • Windows地址下载:http://adoxa.altervista.org/global/
  • Linux系统下载:https://ftp.gnu.org/pub/gnu/global/global-6.6.10.tar.gz
  • global官网:https://www.gnu.org/software/global/
  • VS Code global插件:https://marketplace.visualstudio.com/items?itemName=jaycetyle.vscode-gnu-global

如本文对你有些许帮助,欢迎大佬支持我一下,您的支持是我持续创作的不竭动力
支持我的方式

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Android SQLite 数据库存学习与总结

Android 系统内置了一个名为 SQLite 数据库。那么 SQLite 是一种什么样的数据库,它有那些特点,应该怎么操作它?下面,让我们就来认识一下它吧。 1、概念: SQLite 是一种轻量级的关系型数据库,它不仅支持标准…

C++ (第二天下午---面向对象之类与对象)

一、面向过程与面向对象 1、面向过程 面向过程是一种以事件为中心的编程思想,编程的时候把解决问题的步骤分析出来,然后用函数把这些步骤实现,在一步一步的具体步骤中再按顺序调用函数。 举个例子,下五子棋,面向过程…

通过docker overlay2 目录名查找占用磁盘空间最大的容器名和容器ID

有时候经常会有个别容器占用磁盘空间特别大, 这个时候就需要通过docker overlay2 目录名查找占用磁盘空间最大的容器名和容器ID: 1、 首先进入到 /var/lib/docker/overlay2 目录下,查看谁占用的较多 [rootPPS-97-8-ALI-HD1H overlay2]# cd /var/lib/doc…

Vue 全局状态管理新宠:Pinia实战指南

文章目录 前言全局状态管理基本步骤:pinia 前言 随着Vue.js项目的日益复杂,高效的状态管理变得至关重要。Pinia作为Vue.js官方推荐的新一代状态管理库,以其简洁的API和强大的功能脱颖而出。本文将带您快速上手Pinia,从安装到应用&…

【C语言】bool 关键字

在C语言中,bool类型用于表示布尔值,即真或假。C语言本身在标准库中并未提供布尔类型,直到C99标准引入了stdbool.h头文件。该头文件定义了bool类型,以及两个常量:true和false。在此之前,通常使用整数来表示布…

[方法] 为Cinemachine添加碰撞器

选中场景中的Cinemachine物体,在 Inspector 面板的最下方单击 Add Extension 下拉框,选择 CinemachineCollider。 之后在添加的碰撞器组件中选择要与之碰撞的层(Collide Against)和忽略的层(Transparent Layers&#x…

配置atuin记录

https://atuin.sh/ 运行 curl --proto https --tlsv1.2 -LsSf https://setup.atuin.sh | sh报错 $ curl --proto https --tlsv1.2 -LsSf https://setup.atuin.sh | sh curl: (77) error setting certificate verify locations:CAfile: /etc/ssl/certs/ca-certificates.crtCAp…

2025中国淄博化工展|淄博化工技术展|淄博化工装备展

CTEE2025第九届中国(淄博)化工技术装备展览会 时间:2025年5月16-18日 地点:山东淄博国际会展中心 主办单位:山东省机械工业科学技术协会 青岛蓝博国际会展有限公司 众所周知,山东省是我国化工大省。2023年上半年&am…

Unity 动画事件

Unity中的动画事件是一种在动画播放过程中触发自定义行为的方法。动画事件允许开发者在动画的特定时间点执行代码,例如播放声音、改变游戏状态或触发其他动画。以下是使用Unity动画事件的一些关键点: 动画事件的创建:在Unity的Animation窗口…

Linux kfence使用与实现原理

0 背景 为了更好的检测linux kernel中内存out-of-bounds、mem-corruption、use-after-free、invaild-free等问题,调研了kfence功能(该功能在linux kernel 5.12引入),帮助研发更好的分析与定位这类内存错误的问题。 一、kfence介…

【Unity 人性动画的复用性】

Unity的动画系统,通常称为Mecanim,提供了强大的动画复用功能,特别是针对人型动画的重定向技术。这种技术允许开发者将一组动画应用到不同的角色模型上,而不需要为每个模型单独制作动画。这通过在模型的骨骼结构之间建立对应关系来…

V Rising夜族崛起的管理员指令大全

使用方法: 如果没有启用控制台需要先启用控制台 打开游戏点击选项(如果在游戏内点击ESC即可),在通用页面找到启用控制台,勾选右边的方框启用 在游戏内点击键盘ESC下方的波浪键(~)使用控制台 指…

JAVA妇产科专科电子病历系统源码,前端框架:Vue,ElementUI

JAVA妇产科专科电子病历系统源码,前端框架:Vue,ElementUI孕产妇健康管理信息管理系统是一种将孕产妇健康管理信息进行集中管理和存储的系统。通过建立该系统,有助于提高孕产妇健康管理的效率和质量,减少医疗事故发生的…

LSH算法:高效相似性搜索的原理与Python实现I

局部敏感哈希(LSH)技术是快速近似最近邻(ANN)搜索中的一个关键方法,广泛应用于实现高效且准确的相似性搜索。这项技术对于许多全球知名的大型科技公司来说是不可或缺的,包括谷歌、Netflix、亚马逊、Spotify…

【你也能从零基础学会网站开发】理解DBMS数据库管理系统架构,从用户到数据到底经历了什么

🚀 个人主页 极客小俊 ✍🏻 作者简介:程序猿、设计师、技术分享 🐋 希望大家多多支持, 我们一起学习和进步! 🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注 其实前面我们也…

最新CRMEB商城多商户java版源码v1.6版本+前端uniapp

CRMEB 开源商城系统Java版,基于JavaVueUni-app开发,在微信公众号、小程序、H5移动端都能使用,代码全开源无加密,独立部署,二开很方便,还支持免费商用,能满足企业新零售、分销推广、拼团、砍价、…

Monkey测试

Monkey测试是一种自动化测试技术,它通过模拟用户在设备上的随机操作,来对应用程序进行压力测试。它的目的是测试软件的稳定性和健壮性。 Monkey测试有以下几个特点: 随机输入: Monkey测试不需要编写详细的测试用例,只…

【博主推荐】HTML5实现简洁好看的个人简历网页模板源码

文章目录 1.设计来源1.1 主界面1.2 关于我界面1.3 工作经验界面1.4 学习教育界面1.5 个人技能界面1.6 专业特长界面1.7 朋友评价界面1.8 获奖情况界面1.9 联系我界面 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板,程序开发,在线开发&#xff0c…

怎么把录音转文字?推荐几个简单易操作的方法

在小暑这个节气里,炎热的天气让人分外渴望效率up!Up!Up! 对于那些在会议或课堂中急需记录信息的朋友们,手写笔记的速度往往难以跟上讲话的节奏。此时,电脑录音转文字软件就像一阵及时雨,让记录…

中国网络安全审查认证和市场监管大数据中心数据合规官CCRC-DCO

关于CCRC-DCO证书的颁发机构,它是由中国网络安全审查认证与市场监管大数据中心(简称CCRC)负责。 该中心在2006年得到中央机构编制委员会办公室的批准成立,隶属于国家市场监督管理总局,是其直辖的事业单位。 依据《网络…