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

news2024/7/4 6:21:58
  • 🐚作者简介:花神庙码农(专注于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

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

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

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

相关文章

干货分享:代理IP的10大误区

在当今的数字时代,代理已成为在线环境不可或缺的一部分。它们的用途广泛,从增强在线隐私到绕过地理限制。然而,尽管代理无处不在,但仍存在许多围绕代理的误解。在本博客中,我们将探讨和消除一些最常见的代理误解&#…

EcoVadis评分标准是什么?

EcoVadis评分标准是一个综合性的评估体系,旨在评估公司在环境、社会、商业道德和可持续采购等方面的表现,以帮助企业提高可持续发展的能力。其评分标准可以根据不同的评级进行细分,以下是详细的评分标准: 评分等级与分数范围&…

comfyui定制

🌟 comfyui定制AI人工智能公司— 触站AI,绘制智能图像新纪元 🎨 🚀AI绘画,触站AI引领创新潮流 🚀深圳,这座创新之城,迎来了触站AI,一家专注于企业AI图像领域的技术解决方…

昇思25天学习打卡营第7天|Pix2Pix实现图像转换

文章目录 昇思MindSpore应用实践基于MindSpore的Pix2Pix图像转换1、Pix2Pix 概述2、U-Net架构定义UNet Skip Connection Block 2、生成器部分3、基于PatchGAN的判别器4、Pix2Pix的生成器和判别器初始化5、模型训练6、模型推理 Reference 昇思MindSpore应用实践 本系列文章主要…

Unity 动画事件

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

Hadoop3:Yarn的Tool接口案例

一、需求 依然以wordcount案例为基础,进行开发 我们知道,用hadoop自带的example.jar执行wordcount 命令如下 hadoop jar /opt/module/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount -D mapreduce.job.queuename…

973. 最接近原点的 K 个点-k数组维护+二分查找

973. 最接近原点的 K 个点-k数组维护二分查找 给定一个数组 points ,其中 points[i] [xi, yi] 表示 X-Y 平面上的一个点,并且是一个整数 k ,返回离原点 (0,0) 最近的 k 个点。 这里,平面上两点之间的距离是 欧几里德距离&#…

【Rust入门教程】hello world程序

文章目录 前言Hello World程序运行总结 前言 对于学习任何一种新的编程语言,我们都会从编写一个简单的Hello World程序开始。这是一个传统,也是一个开始。在这篇文章中,我们将一起学习如何在Rust中编写你的第一个程序:Hello Worl…

干货分享|如何将前端代理服务器(BFF)接入身份认证(2)

续集2 前篇文章在前面发布,同学们可以自行找一下。 本篇文章将继续通过实例来详细讲解如何将前端代理服务器(BFF)接入身份认证。我们将使用一个示例应用来演示 BFF 与身份认证的集成过程。 1)在 Keycloak 中新建一个安全领域 …

红队工具Finger 安装具体以步骤-示例centos

1.git clone https://github.com/EASY233/Finger.git 如果没有 yum install git 2.pip3 install -r requirements.txt 找到finger所在的文件夹 可以用find -name "Finger"进入文件中配置命令 前提要安装python yum install python-pip33.python3 Finger.py -h

中国AI产业迎来标准化大跃进,程序员们准备好了吗

中国AI产业迎来标准化大跃进,程序员们准备好了吗? 程序员们,你们是否已经感受到了人工智能技术的浪潮?现在,中国工信部联合其他部门发布了《国家人工智能产业综合标准化体系建设指南(2024版)》&…

龙迅LT8641UXE HDMI四进一出切换开关,支持标准HDMI 2.0内置MCU

龙迅LT8641UXE描述: Lontium LT8641UX HDMI2.0开关具有符合HDMI2.0/1.4规范的4:1开关,最大6Gbps高速数据速率,自适应均衡RX输入和预先强调的TX输出支持长电缆应用,没有XTAL板上节省BOM成本。LT8641UX HDMI2.0开关自动…

如何获取音频伴奏

如何获取音频伴奏 在今天的互联网上,有许多好听的音乐.面对这些音乐,我们有时需要伴奏音频,许多音频在网站上可以查找到,但有些不行,今天,我们要通过audacity软件截取音频伴奏. 下载audacity软件 audacity-64.exe 访问密码:8221 或官方网站(访问较慢) 选择简体…

LLM指令微调Prompt的最佳实践(二):Prompt迭代优化

文章目录 1. 前言2. Prompt定义3. 迭代优化——以产品说明书举例3.1 产品说明书3.2 初始Prompt3.3 优化1: 添加长度限制3.4 优化2: 细节纠错3.5 优化3: 添加表格 4. 总结5. 参考 1. 前言 前情提要: 《LLM指令微调Prompt的最佳实践(一)&#…

时序约束(二): input delay约束和output delay约束

一、input delay约束 在千兆以太网数据收发项目中,RGMII的数据输入方式为DDR,源同步输入方式,可以用之前提到的分析模型进行约束。 在时序约束原理中我们提到,input delay约束的就是发射沿lunch到数据有效的延时,根据…

本地项目推送到gitlab仓库的保姆级教程

目录 1、安装git (1)Windows系统 (2)Linux系统 2、gitlab创建空白项目 3、创建密钥 4、将密钥添加到gitlab中 5、远程配置 (1)配置全局的用户和邮箱 (2)本地文件夹初始化 …

Rust: polars行遍历,从dataframe到struct及Bar设计比较

pandas提供了iterrows()、itertuples()、apply等行遍历的方式,还是比较方便的。 polars的列操作功能非常强大,这个在其官网上有详细的介绍。由于polars底层的arrow是列存储模式,行操作效率低下,官方也不推荐以行方式进行数据操作。…

序号不足两位前面补0

预期目标 原始效果 代码实现 {${(index 1).toString().padStart(2, 0)}. ${item.sentence}}要实现自动编号并确保显示为两位数的格式,可以在 {index 1} 的地方进行格式化。在 JavaScript 中,可以使用 String.prototype.padStart() 方法来补足数字到指定…

Webpack: Loader开发 (1)

概述 如何扩展 Webpack?有两种主流方式,一是 Loader —— 主要负责将资源内容翻译成 Webpack 能够理解、处理的 JavaScript 代码;二是 Plugin —— 深度介入 Webpack 构建过程,重塑 构建逻辑。 相对而言,Loader 的职责…

三个方法教大家学会RAR文件转换为ZIP格式

在日常工作当中,RAR和ZIP是两种常见的压缩文件格式。有时候,大家可能会遇到将RAR文件转换为ZIP格式的情况,这通常是为了方便在特定情况下打开或使用文件。下面给大家分享几个RAR文件转换为ZIP格式的方法,下面随小编一起来看看吧~ …