Source Insight 工具栏图标功能介绍
这篇文章并不介绍 Source Insight 的具体使用方法,这类教程网上有很多,这里只分析 Souce Insight 工具栏图标的功能。
文章目录
- Source Insight 简介
- Souce Insight 工具栏
- 文件操作
- 新建(Ctrl+N)
- 打开(Ctrl+O)
- 保存(Ctrl+S)
- 另存为(Ctrl+Shift+S)
- 打印
- 剪切(Ctrl+X)
- 复制(Ctrl+C)
- 粘贴(Ctrl+V)
- 撤销(Ctrl+Z)
- 恢复(Ctrl+Y)
- 查找与替换
- 查找(Ctrl+F)
- 往回查找(F3)
- 往前查找(F4)
- 在多文件中查找(Ctrl+Shift+F)
- 替换(Ctrl+H)
- 查找网页(Ctrl+Alt+W)
- 移动光标位置(简单代码定位)
- 返回(Alt+,)
- 前进(Alt+.)
- 跳转到上一个链接(Shift+F8)
- 跳转到下一个链接(Shift+F9)
- 跳转到指定行(Ctrl+G)
- 书签窗口
- 其他定位方法
- 高级代码定位
- 跳转到定义处(Ctrl+=)
- 查看符号信息
- 跳转到调用处(Ctrl+Alt+C)
- 查找引用(Ctrl+/)
- 代码窗口布局
- 水平平铺
- 突出显示
- 平铺两个窗口
- 层叠窗口
- 窗口管理(非代码窗口)
- 项目窗口
- 项目符号列表
- 上下文窗口
- 文件关系窗口
- 代码段窗口
- 剪切窗口
- 搜索结果窗口
- 窗口列表
- 小工具
- FTP 浏览器
- 总览
- 目录比较
- 文件比较
- 概述(展开与折叠)
- 切换展开状态
- 展开全部
- 折叠全部
- 显示概括
- 布局管理
- 保存布局
- 加载布局 A-D
- 加载布局文件
- 其他图标
Source Insight 简介
Source Insight是一个面向项目开发的程序编辑器和代码浏览器,它拥有内置的对C/C++, C#和Java等程序的分析。能分析源代码并在工作的同时动态维护它自己的符号数据库,并自动显示有用的上下文信息。
Source Insight不仅仅是一个强大的程序编辑器,它还能显示reference trees,class inheritance diagrams和call trees。Source Insight提供了最快速的对源代码的导航和任何程序编辑器的源信息。 Source Insight提供了快速和革新的访问源代码和源信息的能力。与众多其它编辑器产品不同。
Source Insight是如今最好用的语言编辑器之一,支持几乎所有的语言, 如C、C++、ASM、PAS、ASP、HTML等常见的,还支持自己定义关键字,Source Insight提供了可快速访问源代码和源信息的功能。
Source Insight自动创建并维护它自己高性能的符号数据库,包括函数、method、全局变量、结构、类和工程源文件里定义的其它类型的符号。Source Insight 可以迅速地更新的文件信息,即使在编辑代码的时候。而且符号数据库的符号可以自动创建到的工程文件中。——百度百科
Souce Insight 工具栏
本文讲解的”工具栏“位与 Source Insight 窗口第二行,这些功能按钮几乎覆盖了 Source Insight 的所有查阅代码的操作,下面就简单介绍一下各个功能按钮对应的功能。
我可能不会按照从左往右的顺序介绍这些功能,不同版本 Source Insight 的工具栏图标也有一定差别(比如图标位置发生改变,新增图标),所以我会将它们分为几大类来介绍。
文件操作
这些都是对当前正在编辑的文件的操作(除了新建文件)
新建(Ctrl+N)
创建一个新文件
打开(Ctrl+O)
在当前工程打开或创建一个新文件
保存(Ctrl+S)
保存当前文件
另存为(Ctrl+Shift+S)
将当前文件另存为一个新命名的文件
打印
打印当前文件
剪切(Ctrl+X)
将选中的文本拷贝到剪贴板并删除原文本
复制(Ctrl+C)
复制选中文本到剪贴板
粘贴(Ctrl+V)
从剪贴板粘贴文本
撤销(Ctrl+Z)
撤销崔后一次编辑操作
恢复(Ctrl+Y)
在撤销操作后,可以使用该命令来恢复最后的编辑操作
查找与替换
查找和替换也是编辑器的基本功能,图标也是很简洁易懂,稍微多看几眼就能记住了。
查找(Ctrl+F)
查找指定文本,查找的起始位置是当前光标所在位置
往回查找(F3)
查找之前出现的搜索项,即向上查找
往前查找(F4)
查找后文出现的搜索项,即向下查找
在多文件中查找(Ctrl+Shift+F)
在多个文件中搜索文本
这个功能还是非常给力的(虽然我只用过Ctrl+F),它可以在指定的文件里查找指定文本,而且查找选项很多,可以高效率解决代码定位问题。
替换(Ctrl+H)
在当前文件中替换文本
当然,点击 “Files…” 也可以实现多文件替换
查找网页(Ctrl+Alt+W)
使用浏览器搜索指定内容
这个功能作用应该不大,毕竟,大家应该都是在没有网络的环境下使用的 Source Insight。。(懂得都懂🙄)
移动光标位置(简单代码定位)
移动光标位置,这在阅读代码时是很重要的操作,比如在main函数里进入某个子函数时,可以通过返回功能回到main函数。
返回(Alt+,)
将光标返回到选择历史的上一个位置
前进(Alt+.)
将光标返回到选择历史的下一个位置
跳转到上一个链接(Shift+F8)
将光标移到到上一个链接目标
这里的链接目标指的是搜索结果窗口(后文有介绍)中,每个搜索结果对应位置。其实就和上面的往后查找类似,只不过这里会跨文件查找。
跳转到下一个链接(Shift+F9)
将光标移到到下一个链接目标
和往前查找类似,只是这里会在不同文件直接跳转者
跳转到指定行(Ctrl+G)
移动光标到指定行
书签窗口
这个按钮可以开启或者关闭书签窗口
打开窗口后,点击左下角的新建书签,即可在当前光标所在行添加书签,当然,直接输入 Ctrl+M 也可以打开书签窗口(只不过再输 Ctrl + M 不能关闭窗口)。
其他定位方法
这里还有一种高亮方式的定位方式,它并没有对应操作快捷图标,不过可以在右键菜单中找到它们:
高亮文字和高亮引用,在使用时,貌似只能高亮一个单词(不能高亮指定文本),两者作用几乎没有差别,只不过高亮引用貌似不能高亮关键字(这里指 C 语言的关键字),下图中黄色为高亮文字,蓝色为高亮引用。
高级代码定位
上一节介绍到的代码定位操作可能你在普通的编辑器上都能看到,但下面几个代码定位操作,可能要在 IDE(Integrated Development Environment )或者高级代码编辑器上才看得到(比如 VS Stduio 、Qt Creator 以及 VS Code)。
跳转到定义处(Ctrl+=)
跳转到所选符号(变量、函数等)的定义处
查看符号信息
显示一个符号定义的弹窗(符号包括函数、变量等)
和跳转到定义处功能一样,都是找到符号的定义位置,只不过后者不会跳转到定义处,而是在一个新的弹窗中显示。
跳转到调用处(Ctrl+Alt+C)
跳转到函数(或标识符)的调用或引用处
查找引用(Ctrl+/)
搜索指定字段的引用
和之前的查找文件相比,这个查找引用更加强大,它可以在整个工程中查找某一文本字段,选项也是非常多,还可以规定查找的文件类型(比如C/C++,Java)。
代码窗口布局
窗口布局这种功能我几乎没用过,屏幕太小,基本上是最大化当前操作的代码窗口。
水平平铺
平铺所有窗口,普遍宽大于高(呈长方形)
突出显示
只显示一个当前窗口,其他窗口最小化
平铺两个窗口
只平铺显示两个最近使用的代码窗口
层叠窗口
层叠窗口,将窗口以层叠的方式重新排列
窗口管理(非代码窗口)
这里主要包含一些项目、符号、上下文窗口的开启或关闭,一般都不是针对某一个代码文件,而是整个项目工程的资源窗口。
项目窗口
项目窗口默认位于代码窗口右侧,里面还包括几个子窗口,分别是工程文件、工程目录、工程符号和工程符号类别,其中工程符号还有一个单独的工具栏图标(下文有介绍)。
项目符号列表
项目符号列表位于项目窗口内部,该列表包括代码项目的所有符号,而每个代码窗口左侧也有一个符号窗口,它只包含当前代码文件里存在的符号。下图左侧为代码窗口的符号列表,右侧为项目符号列表:
上下文窗口
上下文窗口会把选中文本的上下文单独显示出来。
文件关系窗口
它会把光标处符号与其他符号的关联图显示出来。
代码段窗口
代码段就是一些语句模板,如 case 语句、for 循环语句、if 语句,个人觉得,没啥用处。
剪切窗口
剪切窗口默认存在 Clipboard,我们复制和粘贴时会修改该剪切板的内容,我们也可以自己创建一个剪切板,比如下图我创建了一个名为 “my_clip” 的剪切板。
搜索结果窗口
调转到搜索结果窗口,前提是有搜索结果的窗口(除了普通查找外,其他查找都会出现该窗口,如在多文件查找和查找引用)
窗口列表
窗口列表里的内容是代码窗口中所有的子窗口,
小工具
FTP 浏览器
打开或关闭 FTP 浏览窗口,
文件传输协议(File Transfer Protocol,FTP)允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信。
FTP 这里就不多做介绍,主要是用来下载其他主机文件的工具,目前我没在 Source Insight 上用过它。
总览
显示或隐藏总览窗格
总览窗格就是下面框中的那玩意:
目录比较
显示目录比较窗口
比较目录和文件还是用专业工具吧,这里的小工具应该不好用
文件比较
显示文件比较窗口
比较目录和文件还是用专业工具吧,这里的小工具应该不好用
概述(展开与折叠)
展开和折叠只能操作当前文件
切换展开状态
切换所选区域的展开状态
函数方法或者宏条件语句可以选择折叠起来或者展开显示:
展开全部
展开所有被折叠的语句(包括子项,如函数里的#if)
折叠全部
折叠所有主概括项,不会折叠子项
例如下面的 1 被折叠了,但子概括项 2 没有折叠:
显示概括
开启或关闭当前文件的概括
布局管理
布局管理是用来加载和保存之前提到的窗口布局的,窗口布局本来我就用得少,这个就更不用说了。
保存布局
可以将当前窗口布局保存为 Layout A-D,或者保存为一个文件,
加载布局 A-D
可以加载四种快捷布局
加载布局文件
从已经保存的布局文件中加载布局
其他图标
工具栏除了上面提到的图标,其实还有两类,分别是 Source Control 和 Build,不过这两个类操作默认没有在工具栏里显示,需要手动打开:
它们的图标包括:
只不过点击它们基本都会报类似下面的这种错误,提示 “Comand shell program not found”,既然这样我也就不去研究它们了。
相关文章:

Source Insight 工具栏图标功能介绍
这篇文章并不介绍 Source Insight 的具体使用方法,这类教程网上有很多,这里只分析 Souce Insight 工具栏图标的功能。 文章目录 Source Insight 简介Souce Insight 工具栏文件操作新建(CtrlN)打开(CtrlO)保…...
模板与泛型编程-函数模板
本专栏由于缺少函数模板专题,我本以为这个不用讲解,但由于某些同学基础比较薄弱,特地在此补充一下。 函数模板的定义一般都在头文件中。 一、如何定义一个模板函数 下面是一个求和函数 template<typename T,typename U> auto Add(T a, U b) {return a + b; }int...
了解ActiveMQ、RabbitMQ、RocketMQ和Kafka的特点
ActiveMQ ActiveMQ是一种基于JMS(Java消息服务)规范的消息中间件,由Apache基金会开发和维护 核心组件和特点: Broker(代理):ActiveMQ的核心组件是Broker,它负责接收、存储和路由消息…...

第七章 用户和组管理
7.1 Linux中的用户和组的分类 用户类别 超级用户(0) root 系统用户(1-999) 一般用户(1000-60000) 组类别 管理组 root 基本组(默认组/主组) 附加组(额外组) 7.2 用户管理 7.2.1 添加新用户 语法 useradd 【…...

给奶牛做直播之三
一、前言 上一篇给牛奶做直播之二 主要讲用RTMP搭建点播服务器,整了半天直播还没上场,今天不讲太多理论的玩意,奶牛今天放假了也不出场,就由本人亲自上场来个直播首秀,见下图,如果有兴趣的话࿰…...

【Java 进阶篇】MySQL 数据控制语言(DCL):管理用户权限
MySQL 是一个强大的关系型数据库管理系统,提供了丰富的功能和选项来管理数据库和用户。数据库管理员(DBA)通常使用数据控制语言(Data Control Language,简称 DCL)来管理用户的权限和访问。 本文将详细介绍…...

WPF 03
staticResource和dynamicResource的区别 首先看一个案例 MainWindow.xaml <Window x:Class"WpfDay03.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml&quo…...

Android 使用kotlin+注解+反射+泛型实现MVP架构
一,MVP模式的定义 ①Model:用于存储数据。它负责处理领域逻辑以及与数据库或网络层的通信。 ②View:UI层,提供数据可视化界面,并跟踪用户的操作,以便通知presenter。 ③Presenter:从Model层获…...

数据结构——堆(C语言)
本篇会解决一下几个问题: 1.堆是什么? 2.如何形成一个堆? 3.堆的应用场景 堆是什么? 堆总是一颗完全二叉树堆的某个节点总是不大于或不小于父亲节点 如图,在小堆中,父亲节点总是小于孩子节点的。 如图&a…...

B058-SpringBoot
目录 springboot概念与作用入门案例springboot运行方式热部署配置文件Profile多环境支持整合测试-springboot-testSpringboot-web1.返回json数据2.返回页面(模板技术)thymeleaf1.导入thymeleaf依赖2.模板文件3.controller4.启动类 SSM整合1.导包2.项目目…...

龙迅LT9611UXC 2PORT MIPICSI/DSI转HDMI(2.0)转换器+音频,内置MCU
龙迅LT9611UXC 1.描述: LT9611UXC是一个高性能的MIPI DSI/CSI到HDMI2.0转换器。MIPI DSI/CSI输入具有可配置的单 端口或双端口,1高速时钟通道和1~4高速数据通道,最大2Gbps/通道,可支持高达16Gbps的总带 宽。LT9611UXC支持突发…...

STM32存储左右互搏 I2C总线读写FRAM MB85RC1M
STM32存储左右互搏 I2C总线读写FRAM MB85RC1M 在较低容量存储领域,除了EEPROM的使用,还有铁电存储器FRAM的使用,相对于EEPROM, 同样是非易失性存储单元,FRAM支持更高的访问速度, 其主要优点为没有EEPROM持续写操作跨页…...

1340. 跳跃游戏 V;2039. 网络空闲的时刻;2767. 将字符串分割为最少的美丽子字符串
1340. 跳跃游戏 V 核心思想:动态规划记忆化搜索。定义dfs(i),表示从i开始最多可以访问多少个下标,然后统计往左跳和往右边跳的最大值,思路其实比较简单,但是代码我感觉还是不太好想。 2039. 网络空闲的时刻 核心思想…...

ElementUI之CUD+表单验证
目录 前言: 增删改查 表单验证 前言: 继上篇博客来写我们的增删改以及表单验证 增删改查 首先先定义接口 数据样式,我们可以去elementUI官网去copy我们喜欢的样式 <!-- 编辑窗体 --><el-dialog :title"title" :visib…...

Linux:nginx---web文件服务器
我这里使用的是centos7系统 nginx源码包安装 Linux:nginx基础搭建(源码包)_鲍海超-GNUBHCkalitarro的博客-CSDN博客https://blog.csdn.net/w14768855/article/details/131445878?ops_request_misc%257B%2522request%255Fid%2522%253A%25221…...
go 端口转发 代理V2 --chatGPT
问:broker(localPort, targetPort), 实现远程访问localPort的http代理转发到目标机器 gpt: 要实现一个简单的 HTTP 代理服务器,你可以使用 Go 的 net/http 包来处理 HTTP 请求和响应。以下是一个示例,演示如何创建一个 HTTP 代理服务器将本地…...

idea环境下如何打包可运行jar?
工作中有时候偶尔写一些工具类、小程序,可是java程序员制作一个可运行jar实在折腾,利用idea开发环境,可以快速打包自己的可运行jar。具体怎么操作呢? 创建一个空白的java项目并完成自己的程序开发 完成java代码: /**…...
基于FFmpeg的Android播放器
基于FFmpeg的Android播放器 文章目录 基于FFmpeg的Android播放器1. 前言2. 编译相关组件库3. 解码器4. 解码流程5. 音频输出6. 视频输出(需要优化) 1. 前言 FFmpeg是一个最有名的开源的编解码库,实现了通常的编解码逻辑。它还能够根据平台特…...

osgPBR(十五)镜面IBL--查看不同级别的HDR环境贴图
首先,设置可以使用Mipmap,启用三线性过滤,设置最大级别和最小级别 osg::ref_ptr<osg::TextureCubeMap> tcm new osg::TextureCubeMap; tcm->setTextureSize(128, 128);tcm->setFilter(osg::Texture::MIN_FILTER, osg::Texture:…...

Docker的学习记录
Docker是一个被广泛使用的开源容器引擎,基于Go语言,遵从Apache2.0协议开源。 docker的三个概念:容器、镜像和仓库。 镜像(Image):镜像是Docker中的一个模板。通过 Docker镜像 来创建 Docker容器ÿ…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...

Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...

水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关
在水泥厂的生产流程中,工业自动化网关起着至关重要的作用,尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关,为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多,其中不少设备采用Devicenet协议。Devicen…...

相关类相关的可视化图像总结
目录 一、散点图 二、气泡图 三、相关图 四、热力图 五、二维密度图 六、多模态二维密度图 七、雷达图 八、桑基图 九、总结 一、散点图 特点 通过点的位置展示两个连续变量之间的关系,可直观判断线性相关、非线性相关或无相关关系,点的分布密…...