SourceInsight基本使用

本文详细介绍如何使用 SourceInsight 进行代码编辑与阅读,包括创建工程、添加符号表、配置窗口布局、阅读编辑功能及快捷键等内容。

目录

一、创建工程

二、添加符号表

三、窗口布局/配置

1、窗口布局

2、行号

3、辅助线,编辑选项

4、背景色

5、字体大小

6、编码

四、阅读/编辑

1、快速定位指定位置

根据文件名及行号快速定位

根据符号表快速定位

2、函数调用上下文

3、查找工具

4、编辑功能

五、快捷键


一、创建工程

1、打开软件后的默认界面:

2、准备创建工程:

在菜单栏中点击Project > New Project ,然后会出现对话框如下,分别为当前工程名称和后期该工程数据文件的位置,工程名建议起一个比较容易识别的名称,而工程数据文件可以使用默认的位置或者用户自定义路径;

这里暂时给工程起个名字就是useGlib。起完名字后点击OK进入下一步。

3、项目工程相关设置:

然后会进入到如下对话框,这里主要设置项目源代码路劲位置即可,其他的可以暂时不设置采用默认值,等到后期需要时再进行设置。

4、导入代码文件:

通过手动输入项目文件夹位置到File Name下,然后回车即可在Directory中看到项目文件夹;或者在Directory窗口下自己通过点击找到目录位置;

然后通过Add Tree或者Add All按钮来添加项目源文件:

Add Tree :直接将选中的目录下所有的文件添加到项目工程中;

Add All:会出现选项用于选择添加当前层级的源文件还是添加当前目录下所有层级的源文件。

文件添加完成之后可以在下面的Project Files窗口看到已经添加的工程源文件,也可通过选中不需要的文件后,点击右边的Remove File按钮将其从项目工程中去掉。待文件添加完毕,直接点击右上的Close按钮即可进入到项目的编辑或者阅读状态。

创建好的工程如下:

二、添加符号表

工程创建好之后,可能发现还需要添加些文件,如果还需要添加其他文件点击菜单栏Project > Add and Remove Project Files,或者在工具栏中找到如下图标:

找到后点击该图标便会再次出现图四对话框,重新添加或者移除文件即可。

等再添加一些文件后,可看到如下图,很多的函数名呈黑色:

出现这种黑色的函数大部分因为2种情况:一种是该项目工程所有添加的源文件中存在这些函数定义,但是没有找到对应的符号表链接,结果就是想看这些函数的定义无法跳转过去;另一种是该项目工程所有添加的源文件中不存在这种函数或者变量的定义;

针对以上的第一种情况,一般是项目的文件过多,后台自动同步比较慢,需要在菜单栏中点击Project > Synchronize Files去立刻触发文件同步,创建项目文件中所有的符号表链接,会出现如下对话框,将红框中选项勾选,然后点击Start选项开始同步(项目较大时等待同步结束的时间较长)。

当同步完之后,发现还存在函数为黑色字符,无法点击跳转到定义处,那这是上述第二种情况,当前的项目工程中不包含该函数,该函数是系统函数或者是SDK中的函数,这时候如果期望去看到这样的函数,首先我们需要有这样的库函数的源代码文件,然后将其仅仅以额外符号表(不属于本项目工程)的方式导入,供浏览代码使用。点击菜单栏的Project > Import External Symbols for Current Project(存在另一个标签是Import External Symbol,是为所有的其他项目添加额外的符号表,选择哪个根据情况而定,这里仅仅考虑当前的项目工程),会出现如下对话框。再点击Add按钮后出现右边的对话框:

再点击Import from an INCLUDE path出现如下对话框,将相关的函数定义放入编辑处,按回车确认后出现后一个对话框同时再按OK按键。然后文件会同步。上面出现还可以点击Import from a source code tree是出现文件浏览对话框的形式,与此雷同。

到此可以发现大部分的函数已经由黑色变为彩色,表明可以通过按住 ctrl+鼠标左键 找到该函数的定义,一个项目的创建就已经完成了。

三、窗口布局/配置

在阅读代码之前还可以做一些辅助措施,让代码阅读工作更加的方便。

1、窗口布局

从上图中我们可以看出,有大片的空白区域没有利用,为了有效利用这些空白区域,可以对布局进行重新布置,只要对相应的窗口标签进行拖拽即可,这里展示一种布局如下图,这样可以充分利用空白区域。

当创建了一种新的布局,还可以将该窗口布局进行保存,窗口布局相关按钮在工具栏中,如下图红框中的按钮。点击最后一个图标Save Layout会出现对话框,可以将当前的布局保存起来,保存到ABCD中的任意一种布局按钮中,当下次想再切换使用该种布局,直接点击绿框中的按钮即可还原指定类型的布局。

2、行号

在下图中可以看到代码没有行号,在代码前的空白区域右击鼠标出现右键菜单,选择Line Numbers,然后出现如图代码行号。

如果觉得上图中的代码行号过于浅显,尤其在后面更换背景颜色的时候,会发现行号更加的浅显,这里可以改变行号的颜色。选择菜单栏的Options > Style Properties,在出现的对话框左边的Style Name中找到Line Number,点击后然后在右边找到Color标签,选择Foreground修改前景色,会发现此时的行号已经变成黑色,清晰易见。

3、辅助线,编辑选项

在很多的代码规范中,有要求代码缩进不能使用tab键,而要使用空格键,这时候要知道代码前留空的地方是空格还是tab可以通过点击菜单栏Options > File Type Options出现的对话框来设置,如图下图,勾选Visible tabs和Visible spaces分别是将tab键和空格键可视化。关于Editing Options编辑选项(红框中)下面再介绍几个:

Word Wrap:自动换行,代码超过设定的行长时代码会自动换行;

Allow intelligent paste:智能粘贴,在新的一行粘贴的时候代码会自动加一行新行;

Expand tabs to spaces:按tab键转换为相应长度空格键;

Enter inserts new line:按回车插入新行;

Show line numbers:显示行号;

Show right margin:显示右边界线;

Highlight references to selected symbol:高亮选中的符号;

Symbol Window:符号窗口显示,代码的左边窗口;

Use Overview:预览窗口显示,代码的左边窗口;

Tab width:tab键占用的字节数

Margin width:右边界线的宽度

另外关于缩进,在上图中右上方有个Auto Indent按钮,点击之后,建议将Auto Indent Type选择在Simple上。

具体的选项smart和simple的差异在编辑代码时体现,在一个函数后输入大括号,按下回车后的大括号所在位置体现出差异,根据个人的编码习惯而定。具体如下图所示。

4、背景色

背景颜色可以修改为自己喜欢的颜色,可以在代码编辑区右击出现右键菜单栏,选择Special Window Color出现颜色选择器,然后选择即可。

如上的方式是临时的,只能改变当前.c代码编辑窗口的颜色,并没有修改其他代码编辑窗口的颜色,如果需要改变整个工程代码编辑区的点击菜单栏Options > Preferences出现图下图对话框,然后点击Color & Fonts标签,选择Window Background在点击右边的Pick Color即可选择颜色,然后点击确定就可修改代码编辑区的颜色。

这里修改的是代码编辑区和预览区的背景色,如果想改其他的小窗口颜色,点击小窗口下方的小齿轮,会出现对话框,找到含有如 Color标示的按钮即可修改小窗口的颜色。

5、字体大小

文字大小可以通过点击菜单栏Options > File Type Options(可以使用快捷键Alt+ y)出现如前面图中的对话框,在对话框中有如下图的选项,点击Screen Font设置字符大小即可。

6、编码

有时候代码打开后是乱码,需要手动选择文件的编码方式,点击菜单栏File > Reload As Encoding会出现如下图对话框,选择自己需要的编码即可。

以上方式设置的编码方式是临时的,当打开下一个文件的时候仍然是乱码,此时进行全局设置,点击菜单栏Options > Preferences出现如下图对话框,设置红框中编码方式即可实现全局的编码方式。

四、阅读/编辑

在上一节中提到的是该软件第一次使用时的一些适合自己习惯的基本配置。这些设置完毕后就可以进行代码阅读工作。以下方法的灵活运用可以极大的提高我们编辑代码和阅读代码的效率。根据以下图大概介绍一下使用频率较高的工具和窗口:

标识1处:前进和后退到历史阅读过的地方;

标识2处:基本的文件操作,分别是新建空白文件,打开文件夹,保存,另存为,全部保存,打印机(几乎不使用),剪切,复制,粘贴,在当前文件中查找,查找上一个,查找下一个,多个文件中查找,替换,浏览器查找。

标识3处:到符号定义处,符号信息,符号被使用的地方,查找符号出现的地方。

标识4处:当前文件中出现的符号。

标识5处:当光标放在一个符号上时,标识6处窗口会自动显示哪些符号(函数)调用该出的符号,而标识7处的窗口会自动预览符号定义。详细情况见后面叙述。

1、快速定位指定位置

  • 根据文件名及行号快速定位

点击Project Files的搜索栏(或者快捷键CTRL + O),输入指定的函数名,过滤出需要的文件名后按回车,出现该源文件。然后按下快捷键F5或者CTRL+G,输入行号,即可到达指定位置。

  • 根据符号表快速定位

点击Project symbols(或者快捷键F7)即可输入需要查找的符号,根据符号快速搜索所在位置。

2、函数调用上下文

当定位查找到函数的位置后,需要查看当前函数的上下文,或者全局变量的调用地方。如下图,当鼠标放置在函数上时,Relation窗口会显示调用该函数的方法有哪些,右下角的Context Window窗口显示函数的定义。

注意Context Window窗口只能查看,不能修改,若要修改可以双击Context Window窗口进行跳转到该函数的定义处。或者按住CTRL然后鼠标左击函数名同样能跳到函数的定义处。跳到定义处后,若要继续返回查看调用地方可以使用:Go Back(快捷键Alt+<)按钮返回,这是若再次查看定义处就可以用Go Forward(Alt+>)。

Relation窗口查看函数被调用处,若看调用处的函数被哪里调用,可以继续点击 + 号(如下图标识1),显示更多的调用关系,或者右键某一个函数,选择Expand Special按钮(如下图标识2处),会弹出对话框,给出调用层级数则会显示出指定层级的调用关系。

其中Relation窗口有多种显示方式,如下图标识1中按钮,点击进行调整显示样式,选择合适自己的显示方式。

其中Context Window和Relation窗口都是在鼠标光标放到指定的函数上的时候,自动去显示调用关系和定义内容,如果希望是非自动的,可以通过窗口下面的Lock按钮来锁定显示情况,这样显示的内容就不会自动更新。Context Window窗口通过解锁再次更新,而Relation窗口可以点击 refresh Relation Window按钮来刷新调用关系。

另外函数的调用情况除了通过Relation窗口看以外,还可以通过右键菜单的Jump To Caller(在工具栏上具有相同的图标)来查找调用的地方。

3、查找工具

SourceInsight的查找工具可以通过快捷键CTRL + / ,或者点击工具栏上的 图标,会出现如下图的对话框。

搜索工具选项较多,过于复杂,有选项和查找方式,选项主要使用的就是上图中绿框所标注的。

需要介绍的是Search Method查找方式,这里查找方式有四种:Simple String、Regular Expression、 Keyword Expression、Look Up Reference,下面介绍这几种查找方式的区别:

Simple String:这是普通的字符查找,可以查找文件中出现的任意字符,但是在工程文件较多较大时,查找的过程会很慢。

Regular Expression:使用正则表达式方式查找,需要会使用正则表达式,属于另一方面的知识。

Keyword Expression/Look Up Reference:这两个查找的结果基本相同,但是显示的方式有所区别。这2种方式都是使用SI预先简历的数据库,查找起来比较快,所以这种查找方式用来查找符号(函数,全局变量等)比较快,查找符号时建议使用这种方式。

当查找结束后,会出现一个单独标签Search Result用来显示查找的结果,可以发现每一条结果的前面都有如上图标识1的小按钮,需要查看那条结果就点击相应的按钮即可跳到相应的地,进行阅览。跳转到指定的地方后,可以通过上图中的标识2按钮进行上一条和下一跳结果的翻阅,或者快捷键SHIFT + F8, SHIFT + F9。

4、编辑功能

点击菜单栏edit > special Edit后能看到其他多种特殊编辑操作。选中一段代码后,然后点击这里面的选项及可以进行相应的编辑操作,如下图中的一些文字标注是常用的编辑功能。

*附:

  • 在菜单栏Edit中有一个Smart Rename按钮(快捷键CTRL + '),可用于在单个函数内替换字符比较方便,如果替换一个函数内的临时变量,可以使用该替换方式。
  • 在阅读时候可以高亮某个符号,选中某个符号之后,然后右击鼠标选择Highlight Word(快捷键F8)。

五、快捷键

若要为编辑工作提高效率知道快捷的是必不可少的,设置快捷键单击菜单栏的Options > Key Assignments,出现如图三十四对话框,在Command中搜索要设置快捷键的命令操作,找到需要设置快捷键的命令后,点击Assign New Key后,按下需要设置的快捷按键,当在Keystrokes中看到快捷按键即表示设置成。


<think>首先,用户在询问SourceInsight软件中文件模糊搜索的方法。他们提供了几个引用,我需要参考这些引用来构建我的回答。 关键引用: - 引用[1]:讨论了Source Insight中的正则表达式搜索,使用Ctrl+F进入搜索界面。 - 引用[2]:是一个简介,提到Source Insight的功能,包括代码浏览和分析。 - 引用[3]:关于下载和安装,但用户的问题是关于模糊搜索,所以可能不直接相关。 - 引用[4]:详细描述了文件搜索方法,使用Ctrl+Shift+F打开Search Files窗口,可以搜索文件和文件夹。 - 引用[5]:讨论了如何加快搜索速度,通过选择在特定文件中搜索。 用户的问题聚焦于“文件模糊搜索”,所以我需要解释Source Insight中如何进行模糊搜索。模糊搜索通常意味着不精确搜索,类似于模式匹配或正则表达式。 从引用中: - 引用[1]提到使用正则表达式进行高级搜索,这可以用于模糊搜索(例如,匹配类似但不完全相同的字符串)。 - 引用[4]描述了Search Files功能,允许在文件中搜索文本。 - 引用[5]建议选择特定文件来加快搜索。 所以,我应该结合这些来回答模糊搜索的方法。 回答结构: 1. **介绍模糊搜索**:解释在Source Insight中模糊搜索的含义(例如,使用通配符或正则表达式)。 2. **步骤方法**: - 使用Search Files功能(Ctrl+Shift+F)。 - 进入高级模式使用正则表达式(如引用[1])。 - 描述如何设置模糊搜索条件(例如,wildcards或regex)。 3. **优化搜索**:基于引用[5],提到如何限制搜索范围以提高效率。 4. **示例**:提供一个简单的模糊搜索例子,比如搜索所有包含特定模式的字符串。 系统级指令: - 所有行内数学表达式用$...$,但这里可能不涉及数学,所以跳过。 - 独立公式用$$...$$,同样可能不适用。 - LaTeX语法正确:确保回答中没有LaTeX错误。 - 使用中文回答:整个回答用中文写。 - 生成相关问题:在回答结束后添加相关问题部分。 - 引用标识:在引用段落末尾添加引用标识,如[^1]。 用户上一次的问题:系统提示说“参考用户上一次的问题和你的回答”,但在这个对话中,用户的问题是关于SourceInsight的文件模糊搜索,没有显示之前的互动。系统指令说“上述引用仅供参考”,所以我应该基于当前问题。 最终回答结构: - 清晰、逐步解释方法。 - 参考提供的引用。 - 结束时添加相关问题。 相关问题建议: - 基于主题,如: 1. 如何使用正则表达式在Source Insight中进行复杂搜索? 2. Source Insight中如何优化搜索性能? 3. Source Insight与其他IDE相比在搜索功能上的优势? 确保回答可靠:基于引用内容,不要假设。 </think>### Source Insight 文件模糊搜索方法 Source Insight 是一款强大的源代码编辑和管理工具,支持高级搜索功能,包括模糊搜索(即基于模式或正则表达式的不精确匹配)。模糊搜索特别适用于查找包含相似但不完全相同字符串的文件内容,如变量名、函数调用或特定代码模式。以下基于提供的引用信息,逐步说明如何在 Source Insight 中执行文件模糊搜索。方法主要涉及正则表达式的使用和搜索范围优化,确保高效准确[^1][^4][^5]。 #### 步骤1: 打开搜索界面 Source Insight 提供专门的搜索功能来实现模糊搜索: - **方式1: 快速搜索** 使用快捷键 `Ctrl + F` 打开“查找”窗口(适用于当前文件)。切换到“高级”模式,即可输入正则表达式进行模糊匹配[^1]。 - **方式2: 文件范围搜索** 如果需要在整个项目或特定文件中执行模糊搜索,使用快捷键 `Ctrl + Shift + F` 打开“Search Files”窗口。这是更常用的方法,因为它支持跨文件模糊搜索[^4]。 #### 步骤2: 配置模糊搜索条件 在“Search Files”窗口中,设置模糊搜索参数: 1. **切换到高级模式**: - 在搜索窗口中,勾选“Use Regular Expressions”(使用正则表达式)选项。正则表达式允许您定义模糊模式,如通配符或部分匹配。 - 示例:假设您想模糊搜索所有包含“img”标签但属性值不确定的 HTML 文件,输入正则表达式 `<img[^>]+src="([^"]+)"`。这能匹配类似 `<img src="image.jpg">` 或 `<img alt="logo" src="icon.png">` 的字符串,实现模糊匹配[^1]。 2. **设置搜索内容**: - 在“Find”框中输入您的模糊搜索表达式。常用模糊符号包括: - `.*`:匹配任意字符序列(例如 `error.*` 可匹配 “error_code” 或 “error_message”)。 - `[ ]`:匹配指定字符范围(例如 `[a-z]` 匹配任意小写字母)。 - `^` 和 `$`:用于行首或行尾匹配(例如 `^start` 匹配以 “start” 开头的行)。 - 模糊搜索的关键在于正则表达式的灵活性,它允许您处理不精确的字符串模式。 3. **指定文件范围**: - 在“File Name”框中输入目标文件或文件夹路径(例如 `*.c` 或 `*.html`)。 - 如果搜索包含子文件夹,勾选“Options”区域的“Include Subdirectories”,实现递归搜索[^4]。 - 优化技巧:基于引用[^5],在“Search in”下拉菜单中选择“Files Selected in Project Files Panel”。先在“Project Files”面板中按住 `Shift` 键选择特定文件(例如只搜索修改过的文件),再执行搜索,能显著加快速度(尤其在大项目中)。 #### 步骤3: 执行和优化搜索 - **启动搜索**:点击“Search”按钮或按 Enter 键执行。搜索结果将显示在“Search Results”面板中,列出匹配的文件和具体位置。 - **性能优化**: - 缩小搜索范围:如果项目文件过多,优先在选定的子文件夹或特定文件类型中搜索,避免全项目扫描[^5]。 - 使用通配符简化:对于简单模糊搜索,直接在“File Name”中使用通配符(如 `*test*.cpp` 搜索名称包含 “test” 的C++文件)。 - **注意事项**:正则表达式语法需正确,Source Insight 支持标准正则表达式规则。如果搜索速度慢,检查是否有不必要的递归或大型文件包含。 #### 示例场景 假设您想在项目中模糊搜索所有调用 “log_” 开头的函数(如 `log_error` 或 `log_info`): 1. 按 `Ctrl + Shift + F` 打开“Search Files”。 2. 在“Find”框中输入正则表达式 `log_\w+`(`\w+` 匹配任意字母数字序列)。 3. 在“File Name”框中输入 `*.c` 或 `*.h`,并勾选“Include Subdirectories”。 4. 在“Project Files”面板中选择相关文件(可选),然后点击搜索。 搜索结果将高亮显示所有匹配项,便于快速定位。 模糊搜索在 Source Insight 中依赖于正则表达式的强大功能,能有效处理代码中的变体或模式相似内容[^1][^4]。更多高级用法可参考官方文档或教程[^2]。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值